1

他のクラスの Class フィールド型を宣言できないのはなぜですか? これにより、C4430 エラーが発生します。

//Entity.h file
    class Entity
    {
    public:
        Box test;
    };


    class Box
    {
    public:
        double length;   // Length of a box
        double breadth;  // Breadth of a box
        double height;   // Height of a box
    };
4

1 に答える 1

3

Classは、定義の前にEntityclass について知る必要があります。また、クラスにBoxポインターではなくオブジェクトを含めているため、サイズ(クラスの完全な定義が必要) とメンバーの定義 (初期化のためにアクセスするため) も知る必要があります。実際のフィールド) であるため、クラスのフィールドにする前にの完全な定義が必要です。BoxEntityclass BoxBoxBox::BoxBoxEntity

    class Box
    {
    public:
        double length;   // Length of a box
        double breadth;  // Breadth of a box
        double height;   // Height of a box
    };

    class Entity
    {
    public:
        Box test;
    };
于 2013-09-14T09:46:49.407 に答える