【资料】
《primer》P407 复制构造函数
【内容】
1. 一种特殊构造函数。特征: 单个形参(常用const修饰),是对该类类型的引用。
当定义一个新对象,并用一个同类型的对象,对它进行初始化时。将显示使用复制构造函数。当将该类型的对象传递给函数或从函数返回该类型的对象时,将隐式使用复制构造函数。
2. 复制构造函数作用:
1. 根据另一个同类型的对象显示或隐式初始化一个对象。(详细请参照《Primer》P406“对象定义形式”)
2. 复制一个对象,将它作为实参传给一个函数(函数的形参为类类型时),复制实参的值。( 《Primer》P407倒数第6行 )
3. 函数返回时复制一个对象(返回值 为类类型时),返回retun语句的值得副本(《Primer》P407倒数第5行)
4.初始化顺序容器的元素。
5.根据元素初始化式列表初始化数组元素。
默认复制构造函数只完成必要的工作,只包含类类型成员或内置类型(非指针类型)成员的类。
3. 自定义复制构造函数目的:(大多数类应自定义复制构造函数与默认构造函数)
1.类中有 数据成员为指针,或者有成员表示 在构造函数中分配的其他资源。
2.类在 创建新对象时必须做一些特点工作
(深拷贝与浅拷贝相关资料请查看笔记《Design Pattern》Prototype一节)
4.禁止复制
防止复制,类必须显示声明其复制构造函数为Private!