尝试在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,否则需要了解有关基础类型的任何信息。

10-08 13:02