返回信息流我在一篇写得不错的文章上看到“赋值操作符=的参数应该使用引用类型而不是对象类型”,除了效率上的因素,我不觉得这样做有什么必要性可言。请高手指教。
这是一条镜像帖。来源:北邮人论坛 / cpp / #46374同步于 2010/11/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于赋值运算符的重载
dooon
2010/11/18镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
重载=,深拷贝...
如果没有指针或者引用类型,那么默认的=就能工作的很好...
反之,默认的=做出一些你不能控制的事情...
【 在 dooon (dooon) 的大作中提到: 】
: 我在一篇写得不错的文章上看到“赋值操作符=的参数应该使用引用类型而不是对象类型”,除了效率上的因素,我不觉得这样做有什么必要性可言。请高手指教。
你好像没理解我要问什么吧。
【 在 shenlei 的大作中提到: 】
: 重载=,深拷贝...
: 如果没有指针或者引用类型,那么默认的=就能工作的很好...
: 反之,默认的=做出一些你不能控制的事情...
我错了...
返回值必须是引用...
至于参数嘛,可能只有效率了...
http://bbs.byr.cn/article/CPP/46237
【 在 dooon (dooon) 的大作中提到: 】
: 你好像没理解我要问什么吧。
如果参数不是引用,返回值是引用……更加有问题吧……
【 在 shenlei (我爱果子|[路]|天山南北|潇湘隐士) 的大作中提到: 】
: 我错了...
: 返回值必须是引用...
: 至于参数嘛,可能只有效率了...
: ...................
参数可以不是引用...
【 在 renne (歼灭天使 玲) 的大作中提到: 】
: 如果参数不是引用
: 返回的是临时变量吗……返回的不是传入的参数?
不仅因为效率的问题,参数必须得为引用而不能是值传递
为了对付自赋值的情况,就是 自己=自己 的情况
class A
{
A& operator=(A & _a)
{
if(this = &_a) //看到没有,这点不用引用就无法检测自赋值的情况了
{
return * this;
}
....
}
};