C++当函数的形参是对象的时候,返回类型是void。
如果调用这个函数,一个实参对象传给形参。到调用结束时,会调用几次构造函数,几次析构函数。我知道传参的时候会构造临时对象,于是会调用一次拷贝构造函数,一次析构函数。可是我觉...
如果调用这个函数,一个实参对象传给形参。到调用结束时,会调用几次构造函数,几次析构函数。我知道传参的时候会构造临时对象,于是会调用一次拷贝构造函数,一次析构函数。可是我觉得,不是还构造了一个形参吗?对于这个形参对象,不会调用构造函数和析构函数吗?
还有个问题,是不是调用拷贝构造函数时,也会先构造一个对象,再进行初始化? 展开
还有个问题,是不是调用拷贝构造函数时,也会先构造一个对象,再进行初始化? 展开
展开全部
拷贝构造函数是构造函数的一种。调用拷贝构造函数也是创建了一个对象,只不过初始化的值是从另外一个对象里拿过来的。调用拷贝构造函数有三种情况。
比如有class A
在主函数里 A a,b(a);
参数是类的对象时,实参对形参的初始化
函数返回值是类的对象时,函数结束的return的时候会调用复制构造函数。
实参对形参初始化的时候调用的拷贝构造函数就已经创建了一个形参了,不会再调用普通的构造函数。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一次复制构造函数,一次析构函数。
复制构造函数也是构造函数,你可以理解为参数是同型对象引用的构造函数。
复制构造函数也是构造函数,你可以理解为参数是同型对象引用的构造函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C++允许临时对象赋值给其他对象时不调用构造函数和析构函数……
追问
噢。看看我刚刚补充的疑问吧。
追答
拷贝构造函数也是构造函数,因此也是在构造对象的时候调用的……至于先后么,初始化不是构造的一个步骤吗?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询