為了避免全局常量在 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++ 中的沖突。