我想将静态const变量保留为类的成员。 是否可以保留,如何启动该变量。
有人说这个有帮助吗
QString <ClassName>::ALARM_ERROR_IMAGE = "error.png";
Initilizing value for a const data
我试过这个
在CPP课程中我写
static QString ALARM_WARNING_IMAGE ;
在构造函数中我写
ALARM_WARNING_IMAGE = "warning.png";
但是没有工作......请提供一些提示来帮助
答案 0 :(得分:10)
在源文件中的任何函数之外写:
const QString ClassName::ALARM_WARNING_IMAGE = "warning.png";
部首:
class ClassName {
static const QString ALARM_WARNING_IMAGE;
};
另外,不要在构造函数中写任何东西。这将在每次ClassName被实例化时初始化静态变量...这不起作用,因为变量是const ...坏主意可以这么说。只能在声明期间设置一次。
答案 1 :(得分:4)
这是基本的想法:
struct myclass{
//myclass() : x(2){} // Not OK for both x and d
//myclass(){x = 2;} // Not OK for both x and d
static const int x = 2; // OK, but definition still required in namespace scope
// static integral data members only can be initialized
// in class definition
static const double d; // declaration, needs definition in namespace scope,
// as double is not an integral type, and so is
// QSTRING.
//static const QString var; // non integral type
};
const int myclass::x; // definition
const double myclass::d = 2.2; // OK, definition
// const QString myclass::var = "some.png";
int main(){
}
答案 2 :(得分:0)
尝试:
QString ClassName::ALARM_WARNING_IMAGE = "warning.png";
答案 3 :(得分:0)
只允许在类或结构中初始化const static integral data成员。