返回一个引用有什么用》?
返回一个引用有什么用》?
如下面的
X & X::operator=(const X &source){}
和直接返回X有什么区别?如下
X X::operator=(const X &source){}
[解决办法]
为了实现操作符的来连续使用
好比 a = b = c;
[解决办法]
主要是考虑效率问题,其次是考虑习惯性,=是右结合的,所以你怎么返回都无所谓
[解决办法]
上面的会少一次复制构造函数调用(忽略RVO的情况下)但是复制符号我们严格限制必须返回引用类型,因为考虑下面形式:
X x1,x2,x3;
(x1=x2)=x3 你实现的要是X X::operator=(const X &source){}将会造成将x3复值给一个x1=x2后的临时对象
[解决办法]