考慮下面的代碼:
上述代碼有一個問題,當實現自我賦值的時候,pb對象已經被刪除,此時又根據pb對象創建一個新的對象,造成錯誤。 解決方法一: 在刪除之前添加一個證同測試: 代碼如下:
但是上述代碼若new 代碼處發生異常,則很可能導致返回一個指向已刪除內存區域的指針。解決方法2:可以先創建一個新的pb,然后再對舊pb進行刪除。
解決方法3: 使用copy and swap 技術
posted on 2011-05-06 22:22 kahn 閱讀(250) 評論(0) 編輯 收藏 引用
Powered by: C++博客 Copyright © kahn