常量的特性
定义就必须初始化,一旦初始化后就不能再去修改其值(不能通过正常手段修改)。
当
类中有const类型的变量时,在定义的时候必须要初始化
,而这个
初始化操作是在初始化参数列表
中完成的,而
构造函数的函数体代码中进行的操作严格来说是赋值,而并非初始化
。先执行初始化参数列表,在执行
构造函数
体中的代码。对于普通的变量来说也可在初始化参数列表中初始化。
写法:在构造函数的参数列表后加上一个冒号
:
后面是初始化的成员,用圆括号 “
()
” 的形式指定初始化值(而不是用=等号),多个成员用逗号 ‘
,
’
分割。
初始化成员顺序为成员在类中定义的顺序
,而不是写在初始化参数列表中的顺序。
一般函数没有初始化参数列表
class CTest{
public:
int m_a;
const int m_b; //常量
char m_c;
//初始化参数列表
CTest(int b):m_a(10),m_b(b),m_c('c'){
m_a = 20; //赋值,允许
//m_b = 30; //赋值,不允许
}
};