第1个回答 2019-06-30
1
c++标准中没有所谓的“c++为什么返回引用的函数的形参也必须是传引用”的规定。
2
在你的例子里(很奇怪的用法,为什么不直接
cp1
=
cp2;呢),不能去掉"&"的原因如下:
如果没了参数的"&",那么这个returnme函数所做的事情就是将cp1复制给临时对象a,
然后返回a的引用,之后相当于a
=
cp2;
再之后过了这一行,a
的生命周期完结了。
而cp1本身自然不受影响。
ps:
如果你对“生命周期”或者
返回局部对象的引用
这些概念不熟悉的话,请参阅
effective
c++(这本薄书看明白了,那baidu
c++
区的绝大多数问题都难不住你了)