2

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

missing type specifier - int assumed

但是,当我转发声明 StatusView 时,即使包含它,我也可以编译它。我不知道是什么导致了转发声明类的要求。

4

1 回答 1

6

标题之间存在循环依赖关系。A 包含 B,B 包含 A,但 B并不真正包含 A,因为#pragma once已经针对 A 进行了评估。(与标准标头保护相同。)

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

于 2012-05-11T02:56:11.917 回答