c++中为什么要函数返回引用?
发布网友
发布时间:2022-04-29 10:23
我来回答
共2个回答
热心网友
时间:2022-06-26 03:55
1
c++标准中没有所谓的“c++为什么返回引用的函数的形参也必须是传引用”的规定。
2
在你的例子里(很奇怪的用法,为什么不直接
cp1
=
cp2;呢),不能去掉"&"的原因如下:
如果没了参数的"&",那么这个returnme函数所做的事情就是将cp1复制给临时对象a,
然后返回a的引用,之后相当于a
=
cp2;
再之后过了这一行,a
的生命周期完结了。
而cp1本身自然不受影响。
ps:
如果你对“生命周期”或者
返回局部对象的引用
这些概念不熟悉的话,请参阅
effective
c++(这本薄书看明白了,那
c++
区的绝大多数问题都难不住你了)
热心网友
时间:2022-06-26 03:55
1 返回变量的引用实际上相当返回变量的地址,通常是四个字节,如变量多于4个字节时,返回引用比返回值效率要快.
2 别外,返回引用另一个用处是外界可以使用这个引用改变原变量的内容,而值返回则不能修改内容.
const引用是要使用1中的效率,而防止2中外界修改这个变量的内容