当赋值运算符重载函数中有指针变量的时候,需要保证在发生异常的时候,对象的原有状态不发生改变。 考虑下面的 未注意的代码
上面申请内存空间的时候,可能会发生异常,但此时原有的内存空间已经释放,这样的话对象的状态被改变了。 解决1 : 考虑在分配内存空间的时候,先用一个辅助指针,指向新申请的内存空间,等申请成功的时候,再将原有对象的指针空间删除, 将对象指针指向临时指针指向的空间。 代码如下:
方法2 : 使用copy构造函数,建立一个临时对象,建立成功之后,将临时对象的指针与原对象交换。 代码如下:
posted on 2011-05-20 14:31 kahn 阅读(158) 评论(0) 编辑 收藏 引用
Powered by: C++博客 Copyright © kahn