我有一个正在从事的C ++项目。
所有类的实现都与.h文件分开。
但是,我不确定为什么/何时需要向前声明。
例如,当我#include“ ClassType.h”时,我只是遇到一个错误,即使在“ ClassType.h”中明确定义了ClassType,编译器也完全拒绝编译具有指向ClassType的指针的类。
为什么对于编译器来说,仅仅看到我已经#include“ ClassType.h”还不够,为什么它要转发声明呢?
#include "ClassType.h"
// REFUSES TO COMPILE WITHOUT forward declaration
class ClassType;
class SomeClass
{
ClassType* instance;
};
最佳答案
ClassType.h是否包含(直接或间接)您引用的文件(在其中定义SomeClass)?
关于c++ - 什么时候需要提前申报?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1089441/