到目前为止,我已经使用了定义来声明我的常量。而且效果很好。
我试图在类中使用c++ const关键字,但它会导致编译时错误。
标题
class User{
public:
User::User();
protected:
const float DATA_Z;
}.CPP
User::User(){
DATA_Z = 0.0023f;
}这是它生成的错误。
错误3错误C2758:'User::DATA_Z‘:必须在构造函数基/成员初始化程序列表中初始化
如何将数据分配给它,以及如何在我的类中使用它们。
发布于 2013-12-08 16:58:12
你想要这样做:
User::User() : DATA_Z(0.0023f)
{
// body of constructor
}常量成员需要在初始化程序列表中初始化,因为它们不能直接分配。对于具有引用类型的成员也是如此,因为不能更改引用变量的引用。
发布于 2013-12-08 16:58:04
错误信息非常清楚。将赋值移到初始化程序列表中:
User::User(): DATA_Z(0.0023f)
{
}发布于 2013-12-08 17:14:47
要简单地替换使用#define定义的清单常量,请编写全局const:
#define DATA_Z 0.0023f变成了
const float DATA_Z = 0.0023f;将常量放入类中意味着您可以在每个对象中有不同的值,这就是为什么其他答案告诉您在构造函数中初始化它。这是一个合理的设计决策,但它与将值定义为宏的不同。
https://stackoverflow.com/questions/20456044
复制相似问题