在类中关于const分为
1)const成员变量:定义的同时便要初始化,这就强调必须在类的构造函数中用初始化列表的方式进行初始化,并且只能这样做;
2)const成员函数:该函数不能改变类的数据成员,也不能调用其他非const成员函数,这类似于一种安全保证;如果其调用了其他非const成员函数,就违反了这个保证;
3)const对象:该对象只要被初始化(事实上定义便要初始化),便不能被更改;同时该对象便不能使用该类的非const成员函数;
总结:
const:定义便要初始化,初始化列表,const函数不能调用非const函数,const变量不能使用非const函数
一般而言,用的最多的是用const来限制参数,一般是const与引用一起使用作为参数传递给函数;
例子:
const int a=3;
int const a=3;
上面两个是一样的意思
1)int *const p const修饰p 指针式常量
2)const int *p const修饰int 整型是常量
3)int const *p const修饰int 同上
4)const int * const p 两个都修饰 指针与整型都是常量
记忆诀窍:
这里是就近原则,const不能修饰*,const修饰哪个哪个就是常量;