转载自:
(1)问题描述:
class ThermalCalibrationHelper : public QObject {
Q_OBJECT
public:
const static float TargetGradient = 0.20f;
const static float TargetTempDelta = 10.0f;
}
Qt下上段语句出错,错误提示:
... of non-integral type [-fpermissive]
(2)问题分析:
代码中非整数型的静态变量在类内进行初始化,严格的讲只有整数型的静态变量可以在类中声明并初始化。
(3)修改方法:加入constexpr标签
class ThermalCalibrationHelper : public QObject {
Q_OBJECT
public:
const constexpr static float TargetGradient = 0.20f;
const constexpr static float TargetTempDelta = 10.0f;
}
(4)关于C++静态成员类内初始化的详细说明:参考
http://www.cnblogs.com/wanyuanchun/p/4041080.html