关于C++构造函数、拷贝函数、析构函数调用问题,问题与答案详情见图 请教这个程序是怎么运行的

 我来答
匿名用户
2017-01-05
展开全部
注意,以下是解释为什么会调用两次拷贝构造函数

1.运行foofun函数时,由于它的参数是对象
当t1对象传入形参时,会先会产生一个临时变量,就叫 A吧。
然后调用拷贝构造函数把t1的值给A。
2.由于foofun函数是 对象以值传递的方式从函数返回
执行到return时,
先会产生一个临时变量,就B吧。
然后调用拷贝构造函数把t1的值给B,
因为foofun函数调用setvalue函数,所以第二次拷贝构造函数value变成了20
欢迎采纳
追问
是我还想问一下,在setValue中t1不是被赋值为20了么,为什么最后的析构函数输出是10
追答
foofun函数调用结束了,这个foofun函数结束了,你懂我的意思吗?比如,
int a;
f(){a=5;}
cout<<a;此时输出什么呢。
匿名用户
2017-01-05
展开全部
在VC里面,单步执行,就看到是如何执行的

~~~~~
追问
运行了,但是不知道它为什么会调用
就是好像突然就跳到了调用的语句中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式