パスワードを忘れた? アカウント作成
1982027 journal
プログラミング

okuの日記: Re: デストラクタは有害と考えられる 5

日記 by oku

Dr. Dobb's Articles は Destructors Considered Harmful より:

煽情的な題名と著者名 (Andrew Koenig) に惹かれて読んでみたのですが、有害なのはデストラクタではなく、生ポインタの delete なんではないかな〜、と思いました (少なくともリンク先の例においては)。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by miyuri (33181) on 2012年03月07日 1時14分 (#2112545) 日記

    コンストラクタでnewするのが怖い。

  •  dodongaです。

     リンク先読んでみました。

     変数のスコ~プに注意、RAIIに盲目的に従うと落とし穴があるよ。
     今なら std::shared_ptrを使え。

     ってことかなぁ。

     コピ~コンストラクタでミスると痛い目に遭ってたけど、今なら std::shared_ptrがあるよ。
     って言っている。

    --
    閑話休題
  • by Anonymous Coward on 2012年03月07日 0時22分 (#2112535)

    生のポインタをメンバに持つクラスは
    複製用関数(コピーコンストラクタと代入演算子)も
    きっちり実装しろよと言う事でしょうか?

    ポインタをshared_ptrに変更する回避策は
    ThingHandleの設計次第のような。

    • by oku (4610) on 2012年03月20日 23時19分 (#2120654) 日記

      生のポインタをメンバに持つクラスは
      複製用関数(コピーコンストラクタと代入演算子)も
      きっちり実装しろよと言う事でしょうか?

      まあ、その辺は Scott Meyers が口をすっぱくして言ってることなので (三部作のどれだったか忘れましたが)。

      pImpl することを選んで、かつ、ポインタ先のオブジェクトを共有する必要が必ずしもないなら、私は boost::scoped_ptr にするか、移植性を最重視して std::auto_ptr を選んじゃいますかねぇ... (obsolete と言われようとも)。 unique_ptr だと、まだ移植性に確信が持てないので。

      # STLport [stlport.org] に unique_ptr が入ったら、その辺が分水嶺かな、と。

      親コメント
  • by Anonymous Coward on 2012年03月07日 11時06分 (#2112680)

    デコントラクタの存在が害悪なのではなくて、そもそもC++の存在が

    # いきなり結論へいってどうするんだか

typodupeerror

コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell

読み込み中...