关于创建临时对象

关于创建临时对象

图片描述
函数创建一个临时对象,通过临时对象把对象带回去,最后把临时对象销毁。
这怎么理解?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
中年猿叔 2022-11-21 08:59:28

栈区的对象在函数调用结束就释放了,那这个对象怎么返回呢?编译器的做法是搞一个临时对象拷贝栈区对象,栈区对象在函数返回的时候就释放了,通过临时对象把值带回,带回后临时对象在释放掉

  • 提问者 我想跑路 #1

    那这个临时对象是在堆区创建的吗?那比如像基本类型的值传递,最后return 一个栈区的int类型值,这种编译器也是创建一个临时变量返回么?

    2022-11-21 09:06:59
  • 不是,这个临时对象是编译器维护在栈,基本类型不需要,可以直接通过寄存器返回
    2022-11-21 09:28:51
  • 提问者 我想跑路 回复 中年猿叔 #3

    好的,了解了,谢谢老师

    2022-11-21 09:56:19
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师