Const 和 成员初始化列表
const 成员变量
- 只读属性
- 正常使用,只读属性
- 只读属性可以去掉,间接修改const 成员变量
const_cost<type*>(& 成员变量)
- 只能在类声明的时候初始化(c++11 可以),或者在初始化列表初始化
- 构造函数中不叫初始化,叫赋值,在进入构造函数里面的时候,编译器已经完成了对成员变量的分配空间和初始化。 所以在构造函数中,是对已经初始化好的变量进行赋值,而
const
成员变量是常量,只能初始化,不能被赋值
- 构造函数中不叫初始化,叫赋值,在进入构造函数里面的时候,编译器已经完成了对成员变量的分配空间和初始化。 所以在构造函数中,是对已经初始化好的变量进行赋值,而
代码块:
#include<iostream>
using namespace std;
class conObj{
private:
int m_val;
string m_key;
const int m_conVal;
public:
conObj(int val,string key,int conVal ):m_key(key),m_conVal(conVal)
{
string temp = m_key;
cout << " conObj 构造函数: temp = " << temp <<endl;
m_val = val;
// m_conVal = conVal; // error: const 常量不能在构造函数初