为了避免全局常量在 C++ 中的冲突,您可以采取以下几种方法:
namespace MyNamespace {
const int MY_CONSTANT = 42;
}
// 使用时需要加上命名空间前缀
int value = MyNamespace::MY_CONSTANT;
class MyClass {
public:
static const int MY_CONSTANT = 42;
};
// 使用时需要加上类名前缀
int value = MyClass::MY_CONSTANT;
constexpr
:使用 constexpr
关键字创建编译时常量,它们具有类型安全且性能更好的优势。constexpr int MY_CONSTANT = 42;
enum MyConstants {
MY_CONSTANT_1 = 1,
MY_CONSTANT_2 = 2,
MY_CONSTANT_3 = 3
};
// 在 *.cpp 文件内部
namespace {
const int MY_CONSTANT = 42;
}
通过上述方法,您可以有效地避免全局常量在 C++ 中的冲突。