在C+中,为了禁止成员函数修改数据成员的值,可以将它设置为常量成员函数。设置常量成员函数的方法是在函数原型的后面加上const,形式如下:
class x {
……………
T f(t1,t2) const{}
…………
};
常量成员函数的作用:
将成员函数设置为const,表明该成员函数不会修改任何数据成员的值。
引用和绑定到常量对象问题
链接
问题:
1,const修饰的成员方法不能返回引用;
2,引用不能绑定常量对象;
原理:
引用的使用是为了方便修改绑定对象的值,如果绑定的对象不可以修改,引用就没有意义了。
const修饰的成员方法:
类(c++中还包括结构体)的非静态函数都有一个type *const this的指针参数,这个指针指向的地址不能改变。
链接
函数后加const :type* const this---->const type*const this
所以const修饰的函数说明类对象的成员不可以被改变,而返回引用本质上是因为想要改变成员的值,所以冲突。如果想要改变值就不要const,如果只是获取值,就不要返回引用。