class Person {
public:
int m_A;
int m_B;
int m_C;
const int m_D;
//下面这样写会报错
//因为m_D是const变量,不允许赋值
Person() {
m_A = 0;
m_B = 0;
m_C = 0;
m_D = 100;
}
//使用下面的初始化列表可完成对const变量的初始化
Person() : m_A(10), m_B(20), m_C(30), m_D(40) {
}
Person(int a, int b, int c, int d) : m_A(a), m_B(b), m_C(c), m_D(d) {
}
};
初始化列表的关键用途:
1.对const变量在构造函数中完成初始化。
2.对引用变量在构造函数中完成初始化。
变量将在调用构造函数大括号代码之前被创建,因此第一种写法在大括号内的代码其实已经对变量分配了内存,因此const变量不允许再被修改了。
而初始化列表时还没有分配内存。
引用变量在底层也是一个const指针参考引用篇
链接: C++基础之引用