永发信息网

请问函数的返回值类型那里,写“类名”和“类名&”有什么区别?

答案:2  悬赏:60  手机版
解决时间 2021-02-27 11:42
直接写类名,表示传值。加&表示传引用。传值因为需要复制对象,所以执行效率比只传引用要低。所以在可以传引用的时候,应该尽量传引用。不论是前置++还是后置++,都可以直接返回值,也就是不带&。但是前置++的语义是:先++,再返回++后的值。也就是说,返回值跟当前对象的值是相等的,所以可以直接返回当前对象的引用,即*this,以提高性能。但是后置++的语义是:先返回当前值,再把当前对象++。也就是说当前对象的值跟返回值是不一样的,这种情况下没法返回引用,所以只能传值。 赞同
最佳答案
写类名表示返回的是值传递,就是返回的对象是return XX处XX的副本(复制品);写类名&表示返回的引用传递,即返回的就是XX本人。 追问 我看到的这种情况出现在单目运算符++的运算符重置上,具体是时间类的++,请问为什么前置++用了引用,而后置++则直接返回类呢?。教材是清华 郑莉的C++。谢谢
全部回答
先++,再返回++后的值。也就是说,返回值跟当前对象的值是相等的,所以可以直接返回当前对象的引用,即*this,再把当前对象++。也就是说当前对象的值跟返回值是不一样的,这种情况下没法返回引用,所以只能传值,以提高性能。但是后置++的语义是:先返回当前值直接写类名,表示传值。加&表示传引用。 传值因为需要复制对象,所以执行效率比只传引用要低。所以在可以传引用的时候,应该尽量传引用。 不论是前置++还是后置++,都可以直接返回值,也就是不带&。但是前置++的语义是
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
间皮不分布于:()。
亿鑫生活超市怎么去啊,有知道地址的么
赛拉图,换了汽缸垫以后动力很差,噪音很大.有
藕一年四季都能吃吗
中城美地北门在什么地方啊,我要过去处理事情
Mg与hcl反应快还是mgo与hcl反应快
我用拧干的湿毛巾擦电脑主机了,然后还用热电
文华二手车交易地址在哪,我要去那里办事
某冻胀地基,基础埋深2.8m,地下水位埋深10.0
外卖人员岗位职责
今天的吐酒是为了明天不在喝酒什么意思
洪景丽苑地址在哪,我要去那里办事
【柳敬亭】阅读黄宗羲的《柳敬亭传》(有删节)
主板BIOS是Phoenix Technologies,LTD 6.00 PG
自拍相机哪个牌子的好?什么牌子的美颜相机好
推荐资讯
梦幻西游7层的化生寺慈悲在可以在哪儿灵气吗
Wehave big ears怎样变为一般疑问句?
哪种盐为无碘盐
我是女生,跟我蓝颜关系很好。我主动去认识我
我是药学专业本科毕业,想转医学影像学专业,怎
2019年辽宁作业分层培优学案八年级数学上册人
听说五险社保卡每月可返还钱到药房购药,请问
我的好朋友凯特送了我一个漂亮的礼物用英语怎
诚信二手车行我想知道这个在什么地方
蓝牙耳机里没声音,电脑上只说已配对怎么办啊
各商业银行的个人贷款可采取灵活多样的还款方
两式两份是什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?