错误:标识符类名未定义?为我在文件中创建的所有类获取此内容

Error: identifier classname is undefined? Getting this for all the classes I've made in the file

本文关键字:创建 获取 标识符 未定义 错误 文件      更新时间:2023-10-16

这是代码

#include <iostream>
#include <string.h>
using namespace std;
int main()
{
    class FIXML {
    private: Order Order_object = new Order();
    public:
        Order getOrder_object()
        {
            return Order_object;
        }
        void setOrder_object(Order Order_object)
        {
            this->Order_object = Order_object;
        }
    };
    class Order {
    public:
        string ClOrdID = "123456";
        string Side = "2";
        string TransactTm = "2001-09-11T09:30:47-05:00";
        string OrdTyp = "2";
        string Px = "93.25";
        string Acct = "26522154";
        Hdr Hdr_object = Hdr();
        Instrmt Instrmt_object = Instrmt();
        OrdQty OrdQty_object = OrdQty();
    public:
        string getClOrdID()
        {
            return ClOrdID;
        }
        string getSide()
        {
            return Side;
        }
        string getTransactTm()
        {
            return TransactTm;
        }
        string getOrdTyp()
        {
            return OrdTyp;
        }
        string getPx()
        {
            return Px;
        }
        string getAcct()
        {
            return Acct;
        }
        Hdr getHdr_object()
        {
            return Hdr_object;
        }
        Instrmt getInstrmt_object()
        {
            return Instrmt_object;
        }
        OrdQty getOrdQty_object()
        {
            return OrdQty_object;
        }
        void setClOrdID(string ClOrdID)
        {
            this->ClOrdID = ClOrdID;
        }
        void setSide(string Side)
        {
            this->Side = Side;
        }
        void setTransactTm(string TransactTm)
        {
            this->TransactTm = TransactTm;
        }
        void setOrdTyp(string OrdTyp)
        {
            this->OrdTyp = OrdTyp;
        }
        void setPx(string Px)
        {
            this->Px = Px;
        }
        void setAcct(string Acct)
        {
            this->Acct = Acct;
        }
        void setHdr_object(Hdr Hdr_object)
        {
            this->Hdr_object = Hdr_object;
        }
        void setInstrmt_object(Instrmt Instrmt_object)
        {
            this->Instrmt_object = Instrmt_object;
        }
        void setOrdQty_object(OrdQty OrdQty_object)
        {
            this->OrdQty_object = OrdQty_object;
        }
    };
    class Hdr {
    private:
        string Snt = "2001-09-11T09:30:47-05:00";
        string PosDup = "N";
        string PosRsnd = "N";
        string SeqNum = "521";
        Sndr Sndr_object = Sndr();
        Tgt Tgt_object = Tgt();
    public:
        string getSnt()
        {
            return Snt;
        }
        string getPosDup()
        {
            return PosDup;
        }
        string getPosRsnd()
        {
            return PosRsnd;
        }
        string getSeqNum()
        {
            return SeqNum;
        }
        Sndr getSndr_object()
        {
            return Sndr_object;
        }
        Tgt getTgt_object()
        {
            return Tgt_object;
        }
        void setSnt(string Snt)
        {
            this->Snt = Snt;
        }
        void setPosDup(string PosDup)
        {
            this->PosDup = PosDup;
        }
        void setPosRsnd(string PosRsnd)
        {
            this->PosRsnd = PosRsnd;
        }
        void setSeqNum(string SeqNum)
        {
            this->SeqNum = SeqNum;
        }
        void setSndr_object(Sndr Sndr_object)
        {
            this->Sndr_object = Sndr_object;
        }
        void setTgt_object(Tgt Tgt_object)
        {
            this->Tgt_object = Tgt_object;
        }
    };
    class Sndr {
    private:
        string ID = "AFUNDMGR";
    public:
        string getID()
        {
            return ID;
        }
        void setID(string ID)
        {
            this->ID = ID;
        }
    };
    class Tgt {
    private:
        string ID = "ABROKER";
    public:
        string getID()
        {
            return ID;
        }
        void setID(string ID)
        {
            this->ID = ID;
        }
    };
    class Instrmt {
    private:
        string Sym = "IBM";
        string ID = "459200101";
        string IDSrc = "1";
    public:
        string getSym()
        {
            return Sym;
        }
        string getID()
        {
            return ID;
        }
        string getIDSrc()
        {
            return IDSrc;
        }
        void setSym(string Sym)
        {
            this->Sym = Sym;
        }
        void setID(string ID)
        {
            this->ID = ID;
        }
        void setIDSrc(string IDSrc)
        {
            this->IDSrc = IDSrc;
        }
    };
    class OrdQty {
    private:
        string Qty = "1000";
    public:
        string getQty()
        {
            return Qty;
        }
        void setQty(string Qty)
        {
            this->Qty = Qty;
        }
    };
    return 0;
}

我声明的所有类,无论是Order、Tgt还是Sndr。每当我创建这些类的新实例时,我都会收到错误"错误:标识符类名未定义"

提前感谢

尝试在使用它们之前声明它们(a),以及(b)在任何函数之外声明:

#include <iostream>
class Test
{
  public:
    Test() { std::cout << "Test!" << std::endl; }
};
int main()
{
  Test t;
}

一旦你根据哪些类被哪个类使用完成了对它们的重新排序,它可能会像这样结束:

class OrdQty {
  // ...
};
class Instrmt {
  // ...
};
class Sndr {
  // ...
};
class Tgt {
  // ...
};
class Hdr {
  // ...
};
class Order {
  // ...
};
class FIXML {
  // ...
};
int main()
{
    return 0;
}

一旦你完成了,你会发现这一行是不正确的:

private: Order Order_object = new Order();

不能像这样初始化类的成员。您需要在constructorcopy constructorassignment operator中执行此操作,然后在destructor中进行清理。