在我的代码中,我有这样的内容
shrd_ptr_obj st = boost::make_shared<Myobj>();
Myobj tp = boost::make_tuple(0,0,0,0,0 );
如何使st指向tp
自然的方法是将构造函数参数传递给make_shared
,并在同一行创建对象。
shrd_ptr_obj st = boost::make_shared<Myobj>(boost::make_tuple(0,0,0,0,0));
如果你想在单独的步骤中构造对象,你需要用new
分配tp
,而不是在堆栈上创建它。然后,您可以从这个new
ed指针创建一个boost::shared_ptr
。
Myobj *tp = new Myobj(boost::make_tuple(0,0,0,0,0));
shrd_ptr_obj st = boost::shared_ptr<Myobj>(tp);