2012-01-11 10 views
4

は、sharedptrをnullptrで最初に初期化し、それからクラスへのポインタをしばらくお待ちしていますか?shared_ptrに割り当てる方法はありますか?

//pseudo code 
std::shared_ptr<MyClass> ptr(nullptr); 
//and later 
ptr->assign(new MyClass); 
+0

これを確認してください:http://codepad.org/1N84El9d – John

答えて

8

ptr.reset(new MyClass)をお探しですか?

+0

私はそうです;) – smallB

2

ないリセットを呼ぶほど効率的ではなく、これも動作するはずです。 shared_ptrのインラインtempインスタンスを作成し、それを割り当てます。

std::shared_ptr<MyClass> ptr; 

ptr = std::shared_ptr<MyClass>(new MyClass); 
関連する問題