剑指offer2笔记之赋值运算符函数

2018-03-23  本文已影响10人  cc荣宣

题目描述(赋值运算符函数)

如下为类型 CMyString 的声明,请为该类型添加赋值运算符函数。

image

考察的关注点

经典解法

image

考虑异常安全性的解法

要想在赋值运算符函数中实现异常安全性,我们有两种方法。一种简单的办法是我们先用 new 分配新内容,再用 delete 释放已有的内容(考虑到可能内存不足,无法分配问题)。另一种方法是先创建已给临时实例,再交换临时实例和原来的实例。

image

程序主要利用了 C++ 的特性以及交换临时实例的方法来实现。关键的是 strTemp 是一个局部的变量,那么在方法执行完毕后,它是会自动调用析构函数而释放内存的,那么就不需要手动释放,而通过交换我们也能拿到要赋值的值。

考点

参考

<<剑指offer2>>

上一篇下一篇

猜你喜欢

热点阅读