C++ C++;标题中的交叉指针
我有两个简单的类,非常简单的一个类似于主表,包含指向类2的指针列表,类2包含指向类1的指针。在每个类中都有函数通过指针调用方法,但我得到的错误如下 错误C2027:使用未定义类型C++ C++;标题中的交叉指针,c++,c,C++,C,我有两个简单的类,非常简单的一个类似于主表,包含指向类2的指针列表,类2包含指向类1的指针。在每个类中都有函数通过指针调用方法,但我得到的错误如下 错误C2027:使用未定义类型 ---- class One.h" #include "Two.h" class One { public: list<Two*> something; void t(){pointer on Two call methods} }; 如何解决此问题?将方法定义移动到.cpp,并将所需的标题与类型定义一
---- class One.h"
#include "Two.h"
class One {
public:
list<Two*> something;
void t(){pointer on Two call methods}
};
如何解决此问题?将方法定义移动到
.cpp
,并将所需的标题与类型定义一起包含
Two.h
class One;
class Two {
public:
One* something;
void t();
};
Two.cpp:
void Two::t() {...}
这是必需的,因为编译器无法生成用于调用未定义类型的方法的代码,因此,您还可以通过将其替换为
类2来避免在一个.h中包含两个.h
@Black:是的,这将加快编译速度
Two.h
class One;
class Two {
public:
One* something;
void t();
};
Two.cpp:
void Two::t() {...}