我想在我的头文件中定义一个常量 char* 供我的 .cpp 文件使用。所以我试过这个:
private:
static const char *SOMETHING = "sommething";
这给我带来了以下编译器错误:
错误 C2864:“SomeClass::SOMETHING”:只能在类中初始化静态 const 整数数据成员
我是 C++ 新手。这里发生了什么?为什么这是非法的?你怎么能这样做呢?
原文由 Mark 发布,翻译遵循 CC BY-SA 4.0 许可协议
注意:自 C++11 以来这已经发生了变化,请阅读其他答案
您需要在翻译单元中定义静态变量,除非它们是整数类型。
在您的标题中:
在 .cpp 文件中:
C++ 标准,9.4.2/4: