| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 430 人关注过本帖
标题:一个拷贝构造函数的问题!
只看楼主 加入收藏
adaliuliu
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-8-21
收藏
 问题点数:0 回复次数:5 
一个拷贝构造函数的问题!

#include<iostream.h>

class A
{
int i;
public:
A(int I=100){i=I;cout<<"constructor!"<<endl;}
A(A&t);
};

A::A(A&t)
{
cout<<"copy!"<<endl;
i=t.i;
}

A print(A a)
{
return a;
}

int main(void)
{
A aa;
print(aa);
}

程序调用了一次构造函数 ,两次拷贝构造函数,我的问题是:print(aa)时都在什么地方调用了拷贝构造函数?具体怎么执行的(比如临时对象的产生)?恳请高手解答。。

[此贴子已经被作者于2006-9-30 16:03:04编辑过]

搜索更多相关主题的帖子: 函数 构造 拷贝 
2006-09-30 16:02
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

做参数传进去对象的时候一次拷贝,做返回值也拷贝一次


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-09-30 16:14
adaliuliu
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-8-21
收藏
得分:0 
这个我知道,能否具体说一下参数传送过程。。。
2006-09-30 16:21
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
你不是知道吗?
传的是地址,所以就相当于引用传递,所以拷贝构造。

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-09-30 17:00
adaliuliu
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-8-21
收藏
得分:0 
但是里边应该有临时对象的创建,我想知道它的行为啊,呵呵
2006-09-30 17:58
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
应该是这样吧:
A print(A a)

在你的这个函数里A a相当于A a(aa);
返回时有一个临时对象A temp(a);


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-09-30 18:28
快速回复:一个拷贝构造函数的问题!
数据加载中...
 
   



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

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