c++中有些重载运算符为什么要返回引用
1、需要返回对象引用或者返回对象(效率没有返回引用高),需要实现连续赋值使重载的运算符更符合C++本身的运算符的语意,=连续赋值, += -= *= /=<<输出流
2、关于赋值 =,我们知道赋值=有连续等于的特性int x,y,z;x = y = z = 15;同样有趣的是,赋值采用的是右结合律,所以上述连锁赋值被鞅瓞慈玢解析为:x = (y = (z = 15)); //赋值连锁形式这里15先被赋值给z,然后其结果(更新后的z)再被赋值给y,然后其结果(更新后的y)再被赋值给x。为了实现“连锁赋值”,赋值操作符号必须返回一个reference指向操作符号的左侧实参(而事实上重载运算符的左侧实参就是调用对象本身,比如= += -=等)这是你为classes实现赋值操作符时应该遵循的协议:这个协议不仅仅适用于以上的标准赋值形式,也适用于所有赋值运算


4、下面是返回引用的情况String& operator+(const String& str)



8、返回void也是可以成功完成赋值运算符赋值的
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:83
阅读量:31
阅读量:55
阅读量:25
阅读量:29