设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
Linux 程序设计专题讨论
›
函数返回的对象在什么时候消失?
返回列表
查看:
728
|
回复:
3
函数返回的对象在什么时候消失?
[复制链接]
graydream
graydream
当前离线
积分
1293
IP卡
狗仔卡
发表于 2005-9-24 10:02:06
|
显示全部楼层
|
阅读模式
假如这样写
class A
{
....
};
A c()
{
return A();
}
main()
{
A aaa;
aaa = c();
}
复制代码
调用函数c返回的似乎是一个临时对象,那么这个对象什么时候消失?是在赋值那一行结束之后消失,还是在赋值所在的逻辑块结束之后消失?还是在整个程序结束后消失?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
manphiz
manphiz
当前离线
积分
1153
IP卡
狗仔卡
发表于 2005-9-24 10:59:15
|
显示全部楼层
哇,这个问题可很有渊源啊!可以参考一下D&E(The Desing and Evolution of C++),书中Bjarne详细介绍了这个问题的历史和发展,具体参见6.3.2。
最后的结论是EOS(End Of Statement),”这样EOS就变成意味着‘完整表达式的结束’,而所谓完整表达式就是说它不在是其他表达式的子表达式了”。
你这个例子就是
aaa=C();
复制代码
之后
回复
支持
反对
使用道具
举报
显身卡
弥敦路九号
弥敦路九号
当前离线
积分
1139
IP卡
狗仔卡
发表于 2005-9-24 14:51:09
|
显示全部楼层
<inside c++ object model> 中也有介绍。
回复
支持
反对
使用道具
举报
显身卡
graydream
graydream
当前离线
积分
1293
IP卡
狗仔卡
楼主
|
发表于 2005-9-24 16:39:51
|
显示全部楼层
恩,刚才写了个class测试了一下,确实是如此。
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
服务器架设、应用、维护
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表