パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

間違った記述があったとしてリコールされたDIY本」記事へのコメント

  • by Anonymous Coward

    >スラドの皆さんで、当てにならない出版社やシリーズ、著者をご存知なら、この機会に是非経験談を披露していただきたい。

    個人的な印象を言えば、ウェブの方があてになりませんが。

    • by Anonymous Coward
      C++でコンストラクタから例外を送出すべきか、せざるべきか、Webと書籍でどちらがあてになるのだろうか。

      C++の例外処理について記載が手持ちの本に無いので、Webで調べているのですが、印象としては、「コンストラクタ内で後始末をした上で、例外を送出する」か、「スマートポインタを利用した上で、例外を送出する」か、そもそも、「コンストラクタで例外を送出する場合は、コンストラクタ内でコンストラクトされたオブジェクトはデストラクトされるから、気にせず送出しろ」の3種類が優勢のよう。

      確認すべきポイントは、
      1.コンストラクタ内でコンストラクトされたものは例外送出時にデストラクトされる?
      2.コンストラクタの開始時に確保したメモリは例外送出時に解放される?

      手元のgcc(4.3.2)で試したところ、1.は正しくないが、2.は正しい。したがって、例外送出前にコンストラクタ内で作られたオブジェクトの始末は考えないといけない。

      Webは玉石混交だけど、いろいろな意見を収集できるところに、価値があるかな。
      • by Anonymous Coward

        まさに今、ここで石ころが増産されてるね。
        > コンストラクタ内でコンストラクトされたものは例外送出時にデストラクトされる?
        「何の」コンストラクタで「何を」「どのように」コンストラクトして、「何が」「いつ」例外を出したら「何の」デストラクタが呼ばれるって話なの?
        おまけに「コンストラクトして」「デストラクトされる」って動詞の定義も曖昧。ctor/dtorが呼ばれるかって話か、リソース解放まで含みを持たせてるのか。
        どうとでも取れるクエスチョン出すもんだから皆てんでに解釈して「正しいとも間違っているとも言える」回答ばかりになってるよ。

        あえて「私の勝手

        • by Anonymous Coward
          > クラスAのコンストラクタ内で、クラスAのメンバ変数または自動変数としてクラスBが生成されるとき

          コンストラクタ内でメンバ変数が生成されるって変でしょうよ。
          • by Anonymous Coward on 2010年01月20日 2時02分 (#1705635)

            C++ではコンストラクタってのは { と } の間に書いたコードだけの話じゃなくて
            メンバ変数の初期化、基底クラスのコンストラクタ呼び出し、メモリ上への配置、などなど含めて
            コンストラクタなので「コンストラクタ内」の表現で合ってると思う。

            親コメント

Stay hungry, Stay foolish. -- Steven Paul Jobs

処理中...