C++当函数的形参是对象的时候,返回类型是void。

如果调用这个函数,一个实参对象传给形参。到调用结束时,会调用几次构造函数,几次析构函数。我知道传参的时候会构造临时对象,于是会调用一次拷贝构造函数,一次析构函数。可是我觉... 如果调用这个函数,一个实参对象传给形参。到调用结束时,会调用几次构造函数,几次析构函数。我知道传参的时候会构造临时对象,于是会调用一次拷贝构造函数,一次析构函数。可是我觉得,不是还构造了一个形参吗?对于这个形参对象,不会调用构造函数和析构函数吗?
还有个问题,是不是调用拷贝构造函数时,也会先构造一个对象,再进行初始化?
展开
 我来答
qj_1994
2013-07-02 · TA获得超过284个赞
知道答主
回答量:62
采纳率:0%
帮助的人:21.8万
展开全部

拷贝构造函数是构造函数的一种。调用拷贝构造函数也是创建了一个对象,只不过初始化的值是从另外一个对象里拿过来的。调用拷贝构造函数有三种情况。

比如有class A

  1. 在主函数里 A a,b(a);

  2. 参数是类的对象时,实参对形参的初始化

  3. 函数返回值是类的对象时,函数结束的return的时候会调用复制构造函数。

实参对形参初始化的时候调用的拷贝构造函数就已经创建了一个形参了,不会再调用普通的构造函数。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
酷管家C350d
2013-07-01 · TA获得超过389个赞
知道小有建树答主
回答量:419
采纳率:0%
帮助的人:272万
展开全部
一次复制构造函数,一次析构函数。
复制构造函数也是构造函数,你可以理解为参数是同型对象引用的构造函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjfaok
2013-07-01 · TA获得超过6807个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1645万
展开全部
C++允许临时对象赋值给其他对象时不调用构造函数和析构函数……
追问
噢。看看我刚刚补充的疑问吧。
追答
拷贝构造函数也是构造函数,因此也是在构造对象的时候调用的……至于先后么,初始化不是构造的一个步骤吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式