残念なことに、実際の開発でスマートポインターを使用する機会はありませんでした(監督者はそれが「複雑」で時間の無駄だと考えています)。しかし、私はそれらを自分のものに使用することを計画しました...
モジュールが完了した後、または新しいデータがロードされたときに、モジュールの初期化を解除する状況があります。ポインターを使用していると、コードに次のようなnullのチェックが散らばっています...
// 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);
生のポインターの代わりにスマートポインターを使用する場合、この問題をどのように軽減できますか?