简述const修饰符在类中的用法?
(1)const修饰成员变量
const修饰的成员变量必须在类的构造函数中的初始化列表进行初始化(因为const修饰的变量定义的时候必须初始化,因为后面是不能修改的,而在构造函数的初始化列表中就相当于是定义,如果放在函数体内初始化就相当于赋值,这是不行的)。另外必须放在初始化列表初始化的成员变量有:const修饰的变量,引用变量,没有默认构造函数的自定义成员变量,在子类中父类没有默认构造函数的父类。
(2)const修饰的成员函数
const修饰的成员函数中保证不会修改类中的数据成员。其实修饰的是this指针,并且是“常量指针”
(3)const修饰对象
const修饰对象指的是对象是一个常量,常量对象的数据成员在对象创建后不能修改,并且常量对象只能调用const成员函数(因为常量对象的地址是const类型的,它调用成员函数需要将地址传给成员函数的this指针,那么这个指针必须const类型的,而const成员函数的this指针就是const类型的)。也就是说,不能把安全的交给不安全的。const就是安全的,没有const就是不安全的。