我在尝试使用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 ...
这在我的Windows机器上运行Visual Studio没问题,一直这样做。但是,在Xcode的Mac上,它给了我错误:
Forward declaration of 'struct MyClassA'
有什么想法吗?错误消息似乎没有多大意义,因为我将class plain称为day并且它返回时出现了关于struct的错误。是否在Xcode中不支持前向声明(非常简单的错误消息似乎表明这是问题,除了struct / class混淆)?我的项目编译为C ++,而不是C.是否有另一个项目设置我错过了可能导致这个?
感谢。
答案 0 :(得分:1)
确保您拥有#include "MyClassA.h"
在MyClassB.cpp中,除非您不打算取消引用ptrToA
,否则需要了解有关基础类型的任何内容。
答案 1 :(得分:0)
实际导致错误的代码行是什么?我的期望是您忘记在MyClassB.cpp中包含MyClassA.h,并且当您尝试new
对象时,实际上会发生错误。
类是结构。他们只是默认将其成员标记为私有,而结构标记为公共成员。