拷贝构造函数顾名思义就是具有拷贝功能的构造函数。
例:
class Person
{
private:
public:
Person(const Person& p);
}
参数为自身类的引用的构造函数为拷贝构造函数。
那么它何时调用呢?它本质还是一个构造函数,所以是在声明一个对象的时候调用。
Person a;
Person b = a;//和Person b(a);是等效的,没有区别。
注意用等号调用拷贝构造函数,是在初始化时有效。
如果写 b = a;
需重载 = 这个运算符才能实现拷贝功能。