1.当用类的一个对象去初始化该类的另一个对象时系统自动调用拷贝构造函数实现拷贝赋值。
int main() {
Point a(1,2);
Point b = a; //拷贝构造函数被调用
cout << b.getX() << endl;
}
2.若函数的形参为类对象,调用函数时,实参赋值给形参,系统自动调用拷贝构造函数。
例如:
void fun1(Point p) {
cout << p.getX() << endl;
}
int main() {
Point a(1, 2);
fun1(a); //调用拷贝构造函数
return 0;
}
3.当函数的返回值是类对象时,系统自动调用拷贝构造函数。
例如: Point fun2() {
Point a(1, 2);
return a; //调用拷贝构造函数
}
int main() {
Point b;
b = fun2();
return 0;
}
4.如果程序员没有为类声明拷贝初始化构造函数,则编译器自己生成一个隐含的拷贝构造函数。 这个构造函数执行的功能是:用作为初始值的对象的每个数据成员的值,初始化将要建立的对象的对应数据成员。