okuの日記: Re: デストラクタは有害と考えられる 5
日記 by
oku
Dr. Dobb's Articles は Destructors Considered Harmful より:
煽情的な題名と著者名 (Andrew Koenig) に惹かれて読んでみたのですが、有害なのはデストラクタではなく、生ポインタの delete なんではないかな〜、と思いました (少なくともリンク先の例においては)。
Dr. Dobb's Articles は Destructors Considered Harmful より:
煽情的な題名と著者名 (Andrew Koenig) に惹かれて読んでみたのですが、有害なのはデストラクタではなく、生ポインタの delete なんではないかな〜、と思いました (少なくともリンク先の例においては)。
アレゲは一日にしてならず -- アレゲ見習い
それよりも (スコア:2)
コンストラクタでnewするのが怖い。
Destructors Considered Harmful 過去形 (スコア:1)
dodongaです。
リンク先読んでみました。
変数のスコ~プに注意、RAIIに盲目的に従うと落とし穴があるよ。
今なら std::shared_ptrを使え。
ってことかなぁ。
コピ~コンストラクタでミスると痛い目に遭ってたけど、今なら std::shared_ptrがあるよ。
って言っている。
閑話休題
要するに (スコア:0)
生のポインタをメンバに持つクラスは
複製用関数(コピーコンストラクタと代入演算子)も
きっちり実装しろよと言う事でしょうか?
ポインタをshared_ptrに変更する回避策は
ThingHandleの設計次第のような。
Re:要するに (スコア:1)
生のポインタをメンバに持つクラスは
複製用関数(コピーコンストラクタと代入演算子)も
きっちり実装しろよと言う事でしょうか?
まあ、その辺は Scott Meyers が口をすっぱくして言ってることなので (三部作のどれだったか忘れましたが)。
pImpl することを選んで、かつ、ポインタ先のオブジェクトを共有する必要が必ずしもないなら、私は boost::scoped_ptr にするか、移植性を最重視して std::auto_ptr を選んじゃいますかねぇ... (obsolete と言われようとも)。 unique_ptr だと、まだ移植性に確信が持てないので。
# STLport [stlport.org] に unique_ptr が入ったら、その辺が分水嶺かな、と。
ちょっと整理してみよう (スコア:0)
デコントラクタの存在が害悪なのではなくて、そもそもC++の存在が
# いきなり結論へいってどうするんだか