名为 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
答案 0 :(得分:0)
在您尝试访问universe.state_no
时,Universes
类不完整(已向前声明)。
解决此问题的一种简洁方法是将States::States
的定义移至States.cpp
,并确保States.cpp
#includes Universes.h
。