代码重复数据删除和复制交换习惯用法,为什么不使用新的贴图?

时间:2017-02-01 21:56:32

标签: c++

在这个关于复制和交换习惯用语的真正有趣的response中,我们提到我们创建一个swap()方法,以便在创建赋值运算符时避免代码重复数据删除,当我们已经有工作副本构造函数和析构函数。

为了不仅仅为此目的创建swap()方法,为什么不直接通过调用析构函数(this->~MyClass(),而不是使用关键字delete)来实现赋值运算符通过展示位置new调用复制构造函数?

考虑例外保证:

如果赋值失败并带有异常(复制和交换版本也会调用复制构造函数),那么继续使用旧状态的对象仍然是个好主意吗?我的意思是此时调用者不再计划使用旧对象,因为他有一个新对象。

0 个答案:

没有答案