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