C++如何在多个文件中使用enum枚举类型
C++ 多文件共用枚举的实现方案
枚举属于类型定义,要跨文件共用需要将定义放在头文件中,所有需要使用该枚举的源文件引入对应头文件即可,不要直接将枚举定义写在单独的.cpp文件中,否则会出现类型不识别、重复定义等编译错误。
具体实现步骤
- 第一步:创建头文件并写入枚举定义,同时添加头文件防护避免重复包含错误。示例如下(头文件命名可根据业务自定义,这里以
number_defs.h为例):
// number_defs.h #ifndef NUMBER_DEFS_H #define NUMBER_DEFS_H // 普通枚举定义 enum Numbers { one = 1, two = 2 }; // C++11及以上更推荐使用强类型枚举,避免命名污染 // enum class Numbers { // one = 1, // two = 2 // }; #endif // NUMBER_DEFS_H
- 第二步:所有需要使用该枚举的
.cpp文件,直接引入上述头文件即可正常使用:
// 任意需要使用Numbers枚举的.cpp文件 #include "number_defs.h" void demo() { // 普通枚举用法 Numbers val = one; // 强类型枚举用法 // Numbers val = Numbers::one; }
注意事项
不要将枚举定义直接写在任意
.cpp文件中,这种写法下其他文件无法识别该枚举类型,强制外部声明还容易出现类型不匹配、重复定义等编译错误。
内容的提问来源于stack exchange,提问作者Wrong Soup
相关产品推荐
相关产品推荐

