【发布时间】:2018-09-15 23:09:04
【问题描述】:
在 LearnCPP CH4.5 枚举类型中,它声明了
因为编译器需要知道为枚举分配多少内存,所以不能转发声明枚举类型。但是,有一个简单的解决方法。因为定义枚举不会分配任何内存,所以如果多个文件中需要枚举,可以在头文件中定义枚举,并在需要的地方#include该头文件。
我认为头文件是前向声明的集合,但只是在一个单独的文件中。那么为什么在头文件中声明一个枚举类型与在同一个文件中前向声明它正在使用的有什么不同呢?
【问题讨论】:
-
在这种情况下,没有枚举“前向声明”。相反,相同的定义在所有包含所述标头的源文件之间共享>。
-
“前向声明”不是官方术语。意思是你可以在 header 中define 一个枚举。在 cpp 文件中定义它并没有什么不同,但有助于避免在不同文件中以不同方式定义相同枚举等错误
标签: c++ enums forward-declaration