C++相談室 part62
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
850:デフォルトの名無しさん 08/07/21 04:35:49 クラスのメンバ関数が、自分自身をdeleteする処理を行っても 安全なのでしょうか? つまりdelete this;ってことになるかな。 自分自身が解体された後にメンバ関数からリターンするって何か変ですよねぇ。 しかもdelete this;の後にも処理が続いてたらやばいですよね。 851:デフォルトの名無しさん 08/07/21 06:40:13 >>850 安全。ただしもちろん、それやったあとにそのインスタンスを使っちゃいけない。 たとえばboost::intrusive_ptrみたいに、値に自身の参照カウンタを持たせるスマートポインタの場合、 値となる型に void Release() { if (!--refCount_) delete this; } みたいなメンバ関数を用意することになる。 852:デフォルトの名無しさん 08/07/21 06:41:32 規格上どうなってるかは知らないけど、そういうことをやってるライブラリは知ってる。 他のメンバーにアクセスせずにリターンするだけなら問題はないような。 実際どっちのデザインがいいのだろ。 A a = A::createInstance(); a.Free(); A::Free(a);
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4784日前に更新/209 KB
担当:undef