【初心者歓迎】C/C++室 Ver.72【環境依存OK】at TECH【初心者歓迎】C/C++室 Ver.72【環境依存OK】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト174:デフォルトの名無しさん 10/03/25 00:21:25 >>173 こんなのとか http://codepad.org/Mn585Q6T 175:デフォルトの名無しさん 10/03/25 12:41:28 とあるクラスの操作で 以下のように T* hoge = new T; hoge->~T; *hoge = new(hoge) T; hoge->~T; delete hoge; 初回のみnewで確保してその後はplacement newを利用して初回確保した領域にオブジェクトを生成し 最終的にデストラクタで領域を開放する、と言う操作を行って大丈夫なのでしょうか? 176:デフォルトの名無しさん 10/03/25 12:54:20 >>175 大丈夫かもしれないし、大丈夫じゃないかもしれない。 本当にそんなことをする必要があるのかよく確認して、その必要性を示す コメントが添えられていれば、やってもいいかもしれない。 177:デフォルトの名無しさん 10/03/25 12:57:28 >>175 デストラクタを2回連続で呼んでる 178:デフォルトの名無しさん 10/03/25 13:10:15 クラスAを生成するファクトリがあって、 A *FactoryA::create(ArgX, ArgY, ArgZ, ...) { new A(ArgX, ArgY, ArgZ, ...); } このような形で引数をそのままnewにデリゲートしています Aが固定ならコンストラクタの数だけオーバーロードを力任せに追加すればいいのですが、 Factory<A>のようにテンプレート引数の場合になると力任せではできません この手の問題を回避する方法はありますか? 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch