3

私のコードでは、このようなものがあります

shrd_ptr_obj st = boost::make_shared<Myobj>();
Myobj tp =  boost::make_tuple(0,0,0,0,0 );

st が tp を指すようにするにはどうすればよいですか?

4

1 に答える 1

3

自然な方法は、コンストラクターのパラメーターを渡しmake_shared、同じ行でオブジェクトを作成することです。

shrd_ptr_obj st = boost::make_shared<Myobj>(boost::make_tuple(0,0,0,0,0));

別のステップでオブジェクトを構築したい場合は、スタック上に作成するのではなく、割り当てる必要がありtpますnewboost::shared_ptr次に、このnewed ポインターからを作成できます。

Myobj *tp = new Myobj(boost::make_tuple(0,0,0,0,0));
shrd_ptr_obj st = boost::shared_ptr<Myobj>(tp);
于 2013-04-11T03:13:20.323 に答える