考虑下面的代码:
上述代码有一个问题,当实现自我赋值的时候,pb对象已经被删除,此时又根据pb对象创建一个新的对象,造成错误。 解决方法一: 在删除之前添加一个证同测试: 代码如下:
但是上述代码若new 代码处发生异常,则很可能导致返回一个指向已删除内存区域的指针。解决方法2:可以先创建一个新的pb,然后再对旧pb进行删除。
解决方法3: 使用copy and swap 技术
posted on 2011-05-06 22:22 kahn 阅读(248) 评论(0) 编辑 收藏 引用
Powered by: C++博客 Copyright © kahn