首先我们知道,非const常对象既可以访问常成员函数也可以访问非常成员函数;常成员函数毫无疑问可以访问常数据成员,那么还有如下几条:
1、const常对象只能访问常成员函数,而不能访问其他非常成员函数(静态、构造函数(用构造来初始化)除外);
2、非const常成员函数可以访问常数据成员,但只能利用其数值(例如做算术运算),而不能改变其原来的值;
3、同理有:const常成员函数可以访问非常数据成员,但不可含改变其值的操作;
3、对于对象的常数据成员,其初始化只能用初始化列表来初始化,不能够用普通的复制函数;另外,初始化列表只能用在构造函数中(一般的带参/无参构造函数,复制构造函数);
4、主要应用:
①、实际问题中不可修改的ID账户;
②、复制构造函数中的形参需用const修饰;
③、友元函数重载中有时形参要用const修饰;