c++中为什么要函数返回引用?
展开全部
1
c++标准中没有所谓的“c++为什么返回引用的函数的形参也必须是传引用”的规定。
2
在你的例子里(很奇怪的用法,为什么不直接
cp1
=
cp2;呢),不能去掉"&"的原因如下:
如果没了参数的"&",那么这个returnme函数所做的事情就是将cp1复制给临时对象a,
然后返回a的引用,之后相当于a
=
cp2;
再之后过了这一行,a
的生命周期完结了。
而cp1本身自然不受影响。
ps:
如果你对“生命周期”或者
返回局部对象的引用
这些概念不熟悉的话,请参阅
effective
c++(这本薄书看明白了,那baidu
c++
区的绝大多数问题都难不住你了)
c++标准中没有所谓的“c++为什么返回引用的函数的形参也必须是传引用”的规定。
2
在你的例子里(很奇怪的用法,为什么不直接
cp1
=
cp2;呢),不能去掉"&"的原因如下:
如果没了参数的"&",那么这个returnme函数所做的事情就是将cp1复制给临时对象a,
然后返回a的引用,之后相当于a
=
cp2;
再之后过了这一行,a
的生命周期完结了。
而cp1本身自然不受影响。
ps:
如果你对“生命周期”或者
返回局部对象的引用
这些概念不熟悉的话,请参阅
effective
c++(这本薄书看明白了,那baidu
c++
区的绝大多数问题都难不住你了)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询