目录
1.两种const成员
我们知道,用const修饰 能起到保护,使之不被修改的作用。
修饰指针的const有两种位置:
2.const成员及const成员函数
就是被const修饰的成员及成员函数。
const的存在,使我们不能对任何成员进行修改。
基于写的日期类的实现,去分析const成员的问题。
需要用到下面的两个函数。
这个时候我们去构建一个const Date,如下,这是不和法的,为什么呢?
其实这里涉及一个权限放大的问题,之前就说了,权限可以缩小,平移,但不能放大。
所以在这后面加个const就可以了
同理,下面是权限的平移和缩小
总结
const对象不能去调用非const函数,存在权限的放大。
非const对象可以去调用const函数,存在权限的缩小。
延伸
const成员函数内不能去调用其他的非const成员函数,存在权限的放大。
非const成员函数内可以去调用其他的const成员函数,存在权限的缩小。
简单记忆: const不能调用非const