1

Universesと呼ばれるクラスは、 States型のデータメンバーを使用しますが、StatesはUniverses型のオブジェクトを使用します。Visual C ++ 2010 Expressを使用しています(違いがある場合)。

States.h:

class Universes;

extern Universes universe;

class States
{
public:

    int relations;

    States();
};

States::States()
{
    relations = universe.state_no;
}

Universes.h

#include "States.h"

class Universes
{
public:
    States state;
    int state_no;
};

Test.cpp

#include "stdafx.h"
#include <iostream>
#include <conio.h>

#include "Universes.h"

using namespace System;

int main(array<System::String ^> ^args)
{
    Universes universe;
    _getch();
    return 0;
}

次のエラーが発生し続けます。

States.h(16): error C2027: use of undefined type 'Universes'
States.h(1) : see declaration of 'Universes'
States.h(16): error C2228: left of '.state_no' must have class/struct/union
4

1 に答える 1

0

アクセスしようとした時点でuniverse.state_noUniversesクラスは不完全です(前方宣言されています)。

これを修正するクリーンな方法は、の定義をに移動し、States::States#includesStates.cppを確認することです。States.cppUniverses.h

于 2013-03-02T17:26:15.473 に答える