该网站声明" 所有权,来源和汇 ":
"当你复制一个auto_ptr,你自动将所有权从源转移auto_ptr到目标auto_ptr; 如果目标auto_ptr已经拥有一个对象,那么该对象首先被释放.在复制之后,只有目标auto_ptr拥有指针并在适当的时候删除它,而源被设置回null状态,不能再用于引用拥有的对象."
现在考虑的定义operator=()为templacte<classX> class auto_ptr,在Stroustrup的第14章,368页的C++编程语言第三版:
auto_ptr& operator=(auto_ptr& a) throw() { ptr = a.ptr; a.ptr = 0; }
我无法看到操作员释放所解决的对象ptr,万一ptr != 0!
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |