首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

返回引用到底是什么意思?具体是如何实现的

2012-03-23 
返回引用到底是什么意思?具体是怎么实现的?比如这两个:constBigClass&val()const{return_val}BigClass&va

返回引用到底是什么意思?具体是怎么实现的?
比如这两个:
      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; } 的区别是
前者不允许在函数体内修改成员变量

热点排行