很遺憾,我沒有機會在實際開發中使用智能指針(監督員認爲這太複雜了,浪費時間)。然而,我計劃將它們用於我自己的東西...C++和智能指針 - 智能指針如何在這種情況下提供幫助?
我有關於在完成後刪除模塊或加載新數據時的情況。當我使用指針時,我發現我的代碼充滿了檢查空像這樣...
// TODO: Reset all opened windows
// Deinit track result player
if (trackResultPlayer_)
trackResultPlayer_->reset();
// disconnect track result player
disconnect(trackResultPlayer_);
disconnect(trackResultAnimator_);
}
if (videoPlayerWindow_)
{
videoPlayerWindow_->reset();
// Disconnect the video player window from source movie data
disconnect(videoPlayerWindow_);
}
// Disconnect this module from its children as they would be connected again
disconnect(this);
如果我使用智能指針,而不是原始指針,怎麼可能這個問題有所緩解?
請記住,新的不返回NULL(除非你明確要求)。 – 2009-09-22 16:02:00