Uma*_*ack 3 c++ constructor initializer-list
可能这可能是一个非常基本的问题,但仍然想了解一些基本概念......
为什么我们将变量定义为 const ?- 在整个程序中保持该特定变量的值恒定。
但是,当我遇到构造函数的初始化列表时,它允许在对象构造期间为 const 变量赋值(例如,我尝试了下面的程序),我对 const 关键字本身的基本概念感到困惑。有人可以澄清这一点吗?
如果允许在对象构造期间更改 const 变量,那么以下程序中 const 变量的用途是什么?我们有针对这些行为的实时场景吗?如果是这样,您能给出一些场景吗?
#include<iostream>
using namespace std;
class Test {
const int t;
public:
Test(int t):t(t) {} //Initializer list must be used
int getT() { return t; }
};
int main() {
Test t1(10);
cout<<t1.getT();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
基本上,当数据成员被声明为常量时,它们必须在构造对象之前具有一些值,因此我们使用成员初始值设定项,以便在构造对象之前数据成员具有一些值。
在此程序中直到最后数据成员将具有相同的值
对于真实场景:
例如,您必须创建一个工资单程序,其中每个员工都有名字和姓氏,这样您就不希望函数意外地修改他们的名字,因此为了防止这种情况,您可以保持它们不变。