スレを勃てるまでもないC/C++の質問はここで 5at TECHスレを勃てるまでもないC/C++の質問はここで 5 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト4:デフォルトの名無しさん 08/12/29 14:42:07 boost::shared_ptr< X > X::Add( boost::shared_ptr< X > x ) { vec.push_back( x ) ; return boost::shared_ptr< X >( x ) ; } int main(){ boost::shared_ptr< X > x1 ; boost::shared_ptr< X > x2 ; boost::shared_ptr< X > x3 ; x1->Add( x2 ) ; ※ x1->Add( x3 ) ; } とやりたいんだけど、これだと※の時点でx1の分が終わった時点で x1の参照カウントがゼロになってデリートされちゃいます。 Addの引数と戻り値はこのままでうまいことやる方法はありませんか? 5:デフォルトの名無しさん 08/12/29 15:06:27 それだけ見ると boost::shared_ptr< X > x1 ; にインスタンス入ってないだけみたいだけど? 6:デフォルトの名無しさん 08/12/29 15:24:29 boost::shared_ptr< X > x1(new X) ; とやると動くね 7:デフォルトの名無しさん 08/12/29 15:26:31 別に動作に不具合が生じるわけではないが、 boost::shared_ptr< X > x2(new X) ; boost::shared_ptr< X > x3(new X) ; もする必要はないのかね。 NULL を Add しても意味ないっしょ。 そして、NULL を Add しようとしても無視するかどうか考える必要もある。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch