包含后是否需要前瞻声明

Are forward declarations needed after includes?

本文关键字:声明 是否 包含      更新时间:2023-10-16

我在自己的文件中有一个名为GameState的类,该类有一个指向另一个类型为StatusView的对象,该对象位于自己的文件中。在GameState.h中,我包含了StatusView标头,但是当我尝试编译它时,我收到错误:

missing type specifier - int assumed

但是,当我在包含 StatusView 后转发声明它时,我能够编译它。我不知道是什么原因导致要求转发声明类。

标头之间有一个循环依赖关系。A 包括 B,B 包括 A,但 B 实际上不包括 A,因为 #pragma once 已经被评估为 A。

因为内部包含被忽略了,所以就好像它根本不存在一样,你需要前向声明。