用一个对象去初始化同一个类的另一个新对象时
将类的一个对象赋值给该类的另一个对象时
函数的形参对象,调用函数进行形参和实参结合时
函数的返回值是类的对象,函数执行返回调用时
1、用一个对象去初始化同一个类的另一个新对象时 2、函数的形参对象,调用函数进行形参和实参结合时 3、函数的返回值是类的对象,函数执行返回调用时 将一个对象赋值给另一个对象,两个对象都存在,调用的是赋值构造函数,不涉及内存的分配。 当被赋值的对象不存在调用的是拷贝构造函数。
拷贝构造函数是创建对象的副本,新对象的修改不改变原对象。
将类的一个对象赋值给该类的另一个对象时,会调用赋值操作符函数。如果没有重载赋值操作符,则会调用默认的合成赋值操作符函数,它会逐个成员进行赋值操作。
而拷贝构造函数是在创建新对象时,以已存在对象的值来初始化成员变量,而不是赋值。因此选项B是不会调用拷贝构造函数的。
MyClass a; MyClass b = a; // 1 MyClass c,d; c = d; // 2
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
【拷贝构造函数知识点讲解】
更多C++基础专业知识讲解,点击链接即可查看
https://www.nowcoder.com/link/zxyl-cpp44