| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1282 人关注过本帖
标题:[讨论]临时对象的问题
取消只看楼主 加入收藏
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
 问题点数:0 回复次数:9 
[讨论]临时对象的问题
我又来了...哈哈
这次我想问下,在C++中何时会生成临时对象的问题
比如
class Sample
{
...........
public:
Sample();
Sample(int num);
......
}
比如

Sample sample1;
sample=Sample(1);//显示调用会生成一个临时的对象

Sample sample2;
sample2=1;//隐式调用构造函数也会生成一个临时对象

除此之外还有哪些情况下会生成临时对象?洗耳恭听中.......



搜索更多相关主题的帖子: Sample 对象 式调 num 
2006-07-24 16:07
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 

和return的原理相同?
也就是说当return返回的不是引用,而是返回普通类型的时候
系统在清理变量前会生成一个值副本用以调用函数的返回

那么也就是说此"临时变量"就相当于这个"副本"?


2006-07-24 16:28
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 
对!!谢谢热情"兄"(你总是"兄"不"兄"的)哈!

2006-07-24 16:36
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 
再接着上面的问题...那是不是函数只要返回的是一个对象,就肯定会调用COPY构造函数生成对象的一个副本???

2006-07-24 23:07
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 
这个问题你前面已经说过了,返回自己的时候是不会生成临时对象的
恩,我了解了...其他情况的话只要函数返回对象就一定会用COPY CONSTRUCTOR生成临时对象的
是吧?

2006-07-24 23:32
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 
又是有些....书上也是这样讲..看到有些最头疼!

2006-07-24 23:33
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 

好,如果是中文的话..相信我还是可以的..


2006-07-24 23:37
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 
yep,just like what you've said above
eg:
Sample s1=Sample s2(.....);
..............
sometimes the compiler will creat a temp object and make a copy to s1
but sometimes may not!

My appreciation here!

2006-07-24 23:43
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 
以下是引用热情依然在2006-7-24 23:47:22的发言:

这个绝对是会调用copy constroctor
因为 Sample s1=Sample s2(.....)相当于 Sample s1(s2)


My apologize,I misnunderstood you a little bit
I mean:
Sample s1=Sample (...);

Then,what about this time?


2006-07-24 23:52
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 
以下是引用kai在2006-7-24 23:46:41的发言:
kan lai ni xiang kao kao da jia a.

No intention to have a test for oyur guys here,
you two have been elcted to be the "Ban Zhu"here,
but i'm just a freshman for C plus plus...
you flattered me a lot!
Thanks...


2006-07-25 00:09
快速回复:[讨论]临时对象的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017885 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved