我有这个我正在处理的 C++ 项目。
所有类的实现都与 .h 文件分开。
但是,我不确定为什么/何时需要前向声明。
例如,我刚刚在#included "ClassType.h" 时遇到了一个错误,编译器完全拒绝编译具有指向 ClassType 的指针的类,即使在 "ClassType.h"中明确定义了类 ClassType。
为什么编译器仅仅看到我已经#included“ClassType.h”还不够,为什么它需要前向声明?
#include "ClassType.h"
// REFUSES TO COMPILE WITHOUT forward declaration
class ClassType;
class SomeClass
{
ClassType* instance;
};