c++ - 什么时候需要提前声明?

标签 c++ forward-declaration

我正在处理这个 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/

相关文章:

c++ - 编辑 ListView 控件项

C++ 模板类型名迭代器

c++ - 前向声明包括,在声明之上包括(ClassFwd.h + Class.h)

c++ - C++中的函数指针对象前向声明

C++ 两个派生类中有彼此的对象(包括问题)

c++ - SDL 图像分屏

c++ - 使用 cv::addWeighted 时出错

c++ - 用十六进制值编码 std::string

c++ - 在 C++ 中声明 "forward declarations"时需要帮助

c++ - 引用指针不适用于 C++ 中的头文件