复制构造函数在声明两个对象时

Copy constructor when declaring two objects

本文关键字:两个 对象 构造函数 声明 复制      更新时间:2023-10-16

确实会声明以下内容:

MyClass myFirstObject;    
MyClass mySecondObject = myFirstObject;

表示即使没有传递参数,复制构造函数也用于第二个对象?

是的,复制构造函数用于初始化具有同一类型的不同对象的对象。复制构造函数

的情况
MyClass A;
MyClass B(A);         //Explicit Copy constructor invoked
MyClass C = A;        //Implicit Copy constructor invoked

一种简单的检查方法是在复制构造函数中添加cout语句:

MyClass::MyClass(const MyClass&){
std::cout << "I am called!";
/*do stuff*/
}