以下代码在我的c ++类
中static const QString ALARM_ERROR_IMAGE ;
我想初始化
ALARM_ERROR_IMAGE = "error.png";
是否可以将error.png
初始化为static const QString ALARM_ERROR_IMAGE
想把它放在课堂内
答案 0 :(得分:2)
类的静态变量只需在命名空间作用域中显式定义一次(无论它们是否进一步符合cv限定)。
在.cpp文件中(例如在<ClassName>.cpp
中),在全局命名空间中(假设您的类在全局命名空间中),将其定义如下(假设QString中存在适当的构造函数)
注意:我在下面的定义中错过了'const'
const QString <ClassName>::ALARM_ERROR_IMAGE = "error.png";
$ 9.4.2 / 2 - “a。声明 类中的静态数据成员 定义不是定义而是可以 是一种不完整的类型 cv合格的空白。的定义 静态数据成员应出现在 包含成员的命名空间范围 类定义。在定义中 命名空间范围,名称 静态数据成员应具备资格 通过其类名使用:: 运算符“。
答案 1 :(得分:0)
不可能留在里面。 只允许const static integral data成员在类或结构中初始化。