c++常量如何使它们工作

c++ constants how to make them work

本文关键字:工作 何使它 常量 c++      更新时间:2023-10-16

到目前为止,我已经使用DEFINE来声明我的常量。而且效果非常好。

我试图在我的类中使用c++const关键字,但它给出了编译时错误

标题

  class User{
  public:
     User::User();
  protected:
       const float DATA_Z;
   }

.CPP

 User::User(){
         DATA_Z = 0.0023f;
  }

这就是它生成的错误

错误3错误C2758:"用户::DATA_Z":必须在构造函数基/成员初始值设定项列表中初始化

如何将数据分配给它,以及如何在类中使用它们。

错误消息非常清楚。将赋值移到初始值设定项列表中:

User::User(): DATA_Z(0.0023f)
{
}

您想要这样做:

User::User() : DATA_Z(0.0023f) 
{
    // body of constructor
}

常量成员需要在初始值设定项列表中初始化,因为它们不能直接赋值。对于引用类型的成员也是如此,因为不能更改引用变量的referent。

要简单地替换用#define定义的清单常量,请编写全局const s:

#define DATA_Z 0.0023f

成为

const float DATA_Z = 0.0023f;

将常量放入类中意味着您可以在每个对象中具有不同的值,这就是为什么其他答案会告诉您在构造函数中初始化它。这是一个合理的设计决策,但它与将值定义为宏是不同的。

以下代码帮助您传递任何值来初始化DATA_Z:

`
   class User{
         public:
            User::User(float data=0):DATA_Z(data){}; // here `data` is a local parameter to receive            the assigned value.
        protected:
           const float DATA_Z;
   }
`
相关文章: