const成员函数
const修饰的类成员函数称为const成员函数,const修饰类成员函数,实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。
如下图所示:
左图的const实质上相当于修饰了成员函数内所隐含的this指针,在该成员函数内部的成员变量均不可做任何修改。(可读不可写)
const修饰类的对象和成员函数
请思考下面的几个问题:
const对象可以调用非const成员函数吗?
不可以,因为const修饰的对象为只读类型,若调用非const非成员函数,属于权限放大行为,只读权限变成既可以只读又可以可写。
非const对象可以调用const成员函数吗?
可以,因为非const对象权限拥有可读、可写权限,调用const成员函数属于权限缩小问题,权限变为只读。
const成员函数内可以调用其它的非const成员函数吗?
不可以,因为const修饰的成员函数为只读类型,若调用非const非成员函数,属于权限放大行为,只读权限变成既可以只读又可以可写。
非const成员函数内可以调用其它的const成员函数吗?
可以,因为非const成员函数权限拥有可读、可写权限,调用const成员函数属于权限缩小问题,权限变为只读。
还是那句话,权限只可以缩小,不能够放大。也就是我本身只能是可读的(const),不能传过去编程可读可写的了(非const)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)