1 const成员
1.1 const修饰类的成员函数
在日期类中,我们实例化一个普通对象,普通对象调用成员函数要传参,传给隐含的this指针。普通对象调用Print(),要把d1的地址传给this指针,那如果是const对象呢?
const对象取地址是const Date* ,所指向的内容不能被修改,此时如果只是一个普通的成员函数是不能编译通过的。因此此时我们要将this指针变成const this *,但是我们没发改,因此我们在后面加const
此时普通对象可以调用(权限缩小),const修饰的对象也可以调用(权限不变)。
总结:建议成员函数中不修改成员变量的成员函数,都可以加上const
好处:普通对象和const对象都可以调用
const->const 权限一样
普通->const 权限的缩小
Q: 思考下面的几个问题:
-
const对象可以调用非const成员函数吗?
-
非const对象可以调用const成员函数吗?
-
const成员函数内可以调用其它的非const成员函数吗?
-
非const成员函数内可以调用其它的const成员函数吗?