包含后是否需要前瞻声明
Are forward declarations needed after includes?
我在自己的文件中有一个名为GameState的类,该类有一个指向另一个类型为StatusView的对象,该对象位于自己的文件中。在GameState.h中,我包含了StatusView标头,但是当我尝试编译它时,我收到错误:
missing type specifier - int assumed
但是,当我在包含 StatusView 后转发声明它时,我能够编译它。我不知道是什么原因导致要求转发声明类。
标头之间有一个循环依赖关系。A 包括 B,B 包括 A,但 B 实际上不包括 A,因为 #pragma once
已经被评估为 A。
因为内部包含被忽略了,所以就好像它根本不存在一样,你需要前向声明。
相关文章:
- 是否可以同时声明一个类成员的常量/非常量?
- 将类型声明为类型模板参数的模板参数的一部分是否合法?
- 当返回类型声明为 ListNode 时,我们是否可以返回 false<T>*
- 在类内和类外的定义处执行类转发声明是否有区别
- 在任何案例之前,在 switch 语句中的使用声明是否合法?
- 声明是否有可能逃脱其封闭的名称空间
- 此声明是否有效
- 声明是否无效()合法,它实际上是什么?
- C++函数声明是否可选?
- 使用声明是否仅导入在使用声明上方声明的重载
- 以下类型的声明是否完全有效
- 具有依赖限定 id 的类成员使用声明是否应为依赖名称
- 使用 "auto" 的声明是否与使用具体类型说明符的外部声明匹配?
- 同一类型的多个声明是否会影响编译时间
- 引用声明是否为引用对象引入新名称
- 此枚举声明是否符合标准?
- std::p riority_queue 声明是否可以在没有专业化的情况下缩短
- 如何检查Clang ASTvisitor中的变量声明是否为数组
- 函数内部的函数声明是否有用处
- 缺少类函数声明是否安全