初始化const数据的值

时间:2010-09-13 07:16:38

标签: c++ visual-c++ qt qt4

以下代码在我的c ++类

static const  QString ALARM_ERROR_IMAGE ;

我想初始化

ALARM_ERROR_IMAGE          = "error.png";

是否可以将error.png初始化为static const QString ALARM_ERROR_IMAGE 想把它放在课堂内

2 个答案:

答案 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成员在类或结构中初始化。