尝试在Xcode中使用我的一个类的前向声明时遇到问题。
这是我的基本架构:
MyClassA.h:
class MyClassA{
... list of members and method prototypes ...
};
MyClassA.cpp:
#include "MyClassA.h"
--- list of methods for MyClassA ...
MyClassB.h:
class MyClassA; // forward declaration
class MyClassB{
... list of members and methods ...
MyClassA* ptrToA;
};
MyClassB.cpp:
#include "MyClassB.h"
... list of methods for MyClassB ...
这可以在Visual Studio中的Windows机器上正常运行,而且可以一直执行。但是,在Mac上的Xcode中,这给了我错误:
Forward declaration of 'struct MyClassA'
有任何想法吗?自从我将class声明为day以来,该错误消息似乎没有多大意义,并且返回了有关结构的错误。 Xcode是否不支持前向声明(除了简单的结构/类混淆,很简单的错误消息似乎表明这是问题所在)?我的项目是使用C++而不是C编译的。是否缺少我可能引起此问题的另一个项目设置?
谢谢。
最佳答案
确保您有#include "MyClassA.h"
在MyClassB.cpp中,除非您不打算取消引用ptrToA
,否则需要了解有关基础类型的任何信息。