我正在使用一个具有一些定义为静态方法的实用程序的类,例如。
QDate SSIMUtils::ConvertSSIMDate(QString s) {
QDate rtnDt;
//...conversion code
return rtnDt;
}
我想在这个类中定义一些常量,例如。LOW_DATE 并且正在考虑放入类似的东西
const static QDate LOW_DATE; // Need to set this somewhere to 1/1/1970
不幸的是,我不能像我所说的那样定义它的预编译时间,例如 int。
const static int SSIMUtils::myI = 4;
因为它需要使用 setDate 方法。
我的问题是我应该如何定义一个需要按代码设置的静态常量,因为该常量需要初始化。我一直在考虑在 .h 文件中定义它,例如。
const static QDate LOW_DATE;
然后在 .cpp 文件的顶部,执行类似的操作
SSIMUtils::LOW_DATE.setDate(1970,1,1);
但这在语法上是不正确的。我最终想做的是在其他类中使用这个常量,例如。
if (myQDate.compare(SSIMUtils::LOW_DATE)==0) {
// do something.
}
在运行时需要调整的静态类中设置常量值的正确方法是什么,即。像构造函数?