在我的代码中,我有这样的东西
shrd_ptr_obj st = boost::make_shared<Myobj>();
Myobj tp = boost::make_tuple(0,0,0,0,0 );
如何使 st 指向 tp ?
在我的代码中,我有这样的东西
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));
如果要在单独的步骤中构造对象,则需要在堆栈上分配tp
而new
不是在堆栈上创建它。然后你可以boost::shared_ptr
从这个new
ed 指针创建一个。
Myobj *tp = new Myobj(boost::make_tuple(0,0,0,0,0));
shrd_ptr_obj st = boost::shared_ptr<Myobj>(tp);