C++ 静态成员的类内初始化-of non-integral type 问题

来源:互联网 发布:工业设计软件培训班 编辑:程序博客网 时间:2024/05/17 07:15

转载自:

(1)问题描述:

class ThermalCalibrationHelper : public QObject {    Q_OBJECTpublic:    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_OBJECTpublic:    const constexpr static float TargetGradient = 0.20f;    const constexpr static float TargetTempDelta = 10.0f;}

(4)关于C++静态成员类内初始化的详细说明:参考

http://www.cnblogs.com/wanyuanchun/p/4041080.html