0x00 语法
classname (const classname &obj)
{
//...
}
0x01 概念辨析
- 复制构造函数是一种特殊的构造函数,一般用于:
通过使用另一个同类型的对象来初始化新创建的对象。
复制对象把它作为参数传递给函数。
复制对象,并从函数返回这个对象。
在这三种情况下,复制构造函数会被隐式调用,复制得到一个临时的新对象,并在新对象被删除(情况一和三)函数返回(情况二)时撤销。
Classname name2 = name1(if parameters exists);
Function(Classname);
Function(if parameters exists)
{
...
return Classname;
}
- 如果类带有指针变量,并有动态内存分配,则它必须有一个拷贝构造函数。