这是我所拥有的:
class A
{
A(int i):_i(i){}
private:
int _i;
};
class B
{
B();
private:
std::vector< boost::shared_ptr<A> > _v;
}
我需要_v
用两个boost::shared_ptr<A>
s 初始化。
我试过这个:
B::B():_v(2, boost::make_shared<A>(0)){}
但似乎两个指针都指向唯一创建的对象——不是我需要的。
我没有,c++11
所以我不能使用:
B::B():_v{boost::make_shared<A>(0), boost::make_shared<A>(0)}{}
这种情况的最佳解决方案是什么?