返回引用到底是什么意思?具体是怎么实现的?
比如这两个:
const BigClass& val() const { return _val; }
BigClass& val(){ return _val; }
这是一个成员函数的重载。我知道在参数列表后写const表示这是个常成员函数,就是不能改编成员对象和变量的值。
但是前边的返回引用我就看不懂具体是怎么回事了?还有加了个const难道说返回的东西是个常量?
还有,为什么不能这么写?
BigClass& val() const { return _val; }
[解决办法]
返回引用到底是什么意思?
就是把一个变量作为回调函数的引用
它的目的是为了实现链式的操作(比如赋值 a=b=c=d)
如果这个类的赋值运算符不返回引用
那么 a=b=c=d 会产生幽灵内存(被释放掉了,而你又去用它)
---------------------------
还有,为什么不能这么写?
BigClass& val() const { return _val; }
它和 BigClass& val(){ return _val; } 的区别是
前者不允许在函数体内修改成员变量