我有一个A
类,其中包含一个共享指针向量
class A
{
std::vector<std::shared_ptr<object>> vec;
A(std::vector<std::shared_ptr<object>> vec_) : vec(vec_) {}
};
和一个包含许多B
的类A
class B
{
std::vector<A> manyA;
//What should the constructor look like?
};
类B
需要将shared_ptrs用作其构造函数的输入,然后初始化其所有A
对象,然后将shared-ptrs分发给它们。
完成此任务的最佳方法是什么?
答案 0 :(得分:0)
我建议在您的向量中存储shared_ptr:
std::vector<std::shared_ptr<A>> manyA;
B(std::vector<std::shared_ptr<A>> v) : manyA(v){ }
vector
将复制shared_ptr
,这意味着引用计数将增加1。
如果您不想使用shared_ptr,请确保将A的副本存储在向量中。