C++引用的问题

之前比较理解引用但是到类的时候就晕了问几个问题1.返回类的引用有什么作用?和返回类有什么区别?2.一个函数的参数是一个类的引用是不是可以类比到值传递那里?就是会改变引用对... 之前比较理解引用 但是到类的时候就晕了
问几个问题
1.返回类的引用有什么作用?和返回类有什么区别?
2.一个函数的参数是一个类的引用是不是可以类比到值传递那里?就是会改变引用对象的内容?有其他区别吗?
求高人谢谢!
展开
 我来答
百度网友a70ce28
2012-08-17 · TA获得超过992个赞
知道小有建树答主
回答量:619
采纳率:0%
帮助的人:562万
展开全部
1.假如返回类而且不是引用的话,那么会调用类的拷贝构造函数,然后在删除临时变量类的时候调用析构函数,但是返回引用的话,直接返回原本的类,而没有调用拷贝构造和析构函数,所以时间大大节省
2.假如参数是类的引用,那么传递类的话确会改变实参类的值,但是假如是值传递的话,只会改变形参类,不影响实参类,这个和指针传递,值传递普通变量的原理相同
poseidon_k
2012-08-17 · TA获得超过2580个赞
知道小有建树答主
回答量:1223
采纳率:0%
帮助的人:311万
展开全部
第一个问题:
你是说返回对象的引用吧?引用实际上是一种安全的不需要使用解引用操作符*的指针,函数返回对象的引用实际上就返回了一个32位数的指针,存放在eax寄存器里;而返回对象的话需要创建一个该类的临时对象,并调用拷贝构造函数用原有的对象对其初始化,比如函数内有个类A的对象a,用return a返回对象的话实际上创建了一个新的临时对象,并将a的数据拷贝到临时对象中。
可以看出,相比之下直接返回对象既浪费函数栈空间,又浪费时间。
问题二:
引用作为函数参数也是传递一个指针进去,不是值传递,这样在函数内部通过引用修改对象的内容,存在于函数外部的对象的内容会得到改变。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式