我正在处理这个 C++ 项目。
所有类的实现都与 .h 文件分开。
但是,我不确定为什么/何时需要前向声明。
例如,我在#included "ClassType.h"时遇到错误,编译器完全拒绝编译具有指向 ClassType 的指针的类,即使类 ClassType 是明确在“ClassType.h”中定义。
为什么编译器仅仅看到我已经#included“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/