【C++ rimer 学习笔记】ch13 复制控制

来源:互联网 发布:大数据营销系统源码 编辑:程序博客网 时间:2024/05/16 14:20

第十三章 复制控制
1.       复制构造函数具有单个形参,该形参(常用const修饰)是对该类类型的引用,当定义一个新对象并用一个同类型的对象对它进行初始化时,将显式使用复制构造函数,当将该类型的对象传递给函数或从函数返回该类型的对象时,将隐式使用复制构造函数;
2.       不管类是否定义了自己的析构函数,编译器都自动执行类中非static数据成员的析构函数;
3.       不能对IO类型的对象使用复制初始化;
4.       当形参或返回值为类类型时,由复制构造函数进行赋值;
5.       即使定义了其他构造函数,也会合成赋值构造函数,合成复制构造函数的行为时,执行逐个成员初始化,将新对象初始化为原对象的副本;
6.       只包含类类型成员或内置类型(但不是指针类型)成员的类,无须显式地定义复制构造函数,也可以复制;
7.       为了防止赋值,类必须显式声明其复制构造函数为private,然而,类的友元和成员仍可进行赋值,如果想要连友元和成员中的复制也禁止,就可以声明一个private复制构造函数但不对其定义;
8.       一般来说,最好显式或隐式定义默认构造函数和复制构造函数。只有不存在其他构造函数时才合成默认构造函数。如果定义了复制构造函数,也必须定义默认构造函数;
9.       如果类需要析构函数,则它也需要赋值操作符和复制构造函数;
10.   析构函数没有返回值,没有形参,也不能进行重载;
11.   编写自己的复制构造函数时,必须显式复制需要复制的任意成员。显式定义的复制构造函数不会进行任何自动复制;
 

原创粉丝点击