C ++中的复制和交换惯用语
作业包括2个步骤,分别是撕裂对象的旧状态和为其建立新状态。第一步使用析构函数,第二步使用复制构造函数。
两者的实现都很简单。但是当重载赋值运算符时,实现起来可能会变得非常困难。复制和交换成语是相同的解决方案。
这个习惯用法使用copy-constructor来构建数据的本地副本。然后,使用交换功能将旧数据与新数据交换。然后使用析构函数将临时副本破坏。我们最终只有新数据的副本。
因此,复制和交换习语需要三件事
复制构造函数
复制构造函数
析构函数
交换功能。
交换函数是一种非抛出函数,它交换一个类的两个对象,即成员。
注意:切勿使用std::swap函数,因为它在内部使用复制构造函数和赋值运算符来实现相同功能。