复制控制
复制控制:分为复制构造函数、赋值操作符和析构函数。编译器自动实现这么操作,但类也可以定义自己的版本。
复制构造函数:只有单个形参,且形参是对本类类型对象的引用(常用const修饰)的构造函数。
赋值操作符:接受单个形参,且该形参是同一类类型的对象。由操作数一般作为const引用传递。
一般而言,需要复制构造函数和赋值操作符两种的其中一种,则另一种都需要。
析构函数:是特殊的成员函数,其名字是在类名字前面加上一个代字号(~)。该函数没有返回值和形参,用于对象超出作用域或需要删除对象时来清除对象。
三法则:如果需要析构函数,则需要素有的这三个复制控制成员。
合成析构函数:与复制构造函数或赋值操作符不同,编译器总是会为我们合成一个析构函数。
合成析构函数按对象创建时的逆序撤销每个非static成员。