拷贝构造函数是一种特殊的构造函数, 其形参必须是本来对象的一个引用,但并不限制为const,一般普遍的会加上const限制. 使用拷贝构造函数的目的是一个已经存在的对象来初始化同类的一个新对象.
声明拷贝构造函数的语法规则如下:
类名(类名 &对象名)
通常构造函数只在对象创建时被调用, 而拷贝构造函数在以下情况下会被调用:
- 当使用类的一个对象去初始化该类的一个新对象时.
- 如果一个函数的形参是类的对象, 那么当调用该函数时对应类的拷贝构造函数也会被调用.
- 如果函数的返回值是类的对象, 那么该函数返回时对应类的拷贝构造函数也会被调用.(但一般编译器会进行返回值优化, 减少临时对象带来的开销,参考 C++返回值为对象时复制构造函数不执行怎么破)