【发布时间】:2014-07-04 10:37:54
【问题描述】:
为什么我无法在头文件中初始化静态 const char*? 在我的代码中,我的类标题中有:
static const char* xml_ID_TAG;
在 cpp 中:
const char* Class::xml_ID_TAG = "id";
xml_ID_TAG 变量包含 XML 文档的属性字符串。 由于它是静态、常量、原始类型(char*)等...我不明白为什么编译器禁止编写类似的东西:
static const char* xml_ID_TAG = "id";
我使用的是 MSVC2013 编译器,上面的示例给出了错误:“错误:具有类内初始化程序的成员必须是 const”
【问题讨论】:
-
只有
static const整数成员可以在类体内定义。这是为了防止违反 ODR。
标签: c++