K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>> 303ページに「オブジェクトの寿命をプログラマが完全に制御しなければならないC++」 >>とありますが。 > >「プログラミング言語を作る」のp.303ですね。 > >> C++はコンストラクタ、デストラクタによるリソース管理を行っており、 >>原則オブジェクトの寿命はそのスコープ内です。 > >はい(まあ、どこまでのオブジェクトをスタック上に取るかという問題はありますが)。 > >> そのため、この記述はC++にとっては特殊な状況を除いて正しくない、という >>ことにはならないでしょうか > >ただ、文脈上ここは、「Diksamにファイナライザを付けなかった理由」です。 >C++の場合、デストラクタが動くタイミングは、スタックに取ったオブジェクトなら >ブロックを抜けるときですし、ヒープに取ったオブジェクトならdeleteする時です。 >よって、デストラクタが動くタイミングはプログラマが完全に予期できるので、 >C++ではデストラクタは有用なのだけれど、Diksamではタイミングが予期できないので >役に立たない、ということを書いています。 > >そういう意味だと「オブジェクトの寿命をプログラマが完全に制御できるC++」と >いう言い方の方が適切だったかもしれませんが、ヒープに確保したオブジェクトの >deleteのめんどくささを考えるとついつい「オブジェクトの寿命をプログラマが >完全に制御しなければならないC++」と書きたくなってしまう……という感情が >私の中にあったかもしれません。 >間違いとは思いませんが、C++好きな方からするとカチンとくるかもしれませんね。 >失礼しました。 > >ご意見ありがとうございました。 >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!