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

操作符有关问题

2013-09-17 
操作符问题+操作符为什么返回*this,一般复合赋值操作符是成员函数,我用void作为函数返回值应该没问题,毕

操作符问题
+=操作符为什么返回*this,一般复合赋值操作符是成员函数,我用void作为函数返回值应该没问题,毕竟操作符左操作数就是*this,那么函数体内进行的操作就是对他进行操作,类似于构造函数,那么是否一定要返回*this?还是由于规范的原因?谢谢
[解决办法]
不能排除有人会这样用
if (x += 10)
所以函数有返回值比较好。
[解决办法]
还不是为了减少不必要的麻烦,或者bug ,
只要你处理好,也没所谓了
[解决办法]
this是类内部的成员。有时都是this来进行转换的。
还有就是参数与成员变量同名的时候,this来区分
[解决办法]
根据实现而定义返回值,返回*this会安全一些,不能排除别人用你的重载操作符写出如下这样的一些代码:


f(a += b)//函数调用,参数为类型a

if(&(a += b))//条件判断,地址是否为空

printf("%d", (a += b).v);//其中v是类型a的一个int型成员


例子就不多举了,返回void没有语法错误

热点排行