如何通过另一个类传递指向一个类的共享指针?

时间:2019-06-26 00:07:47

标签: c++

我有一个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分发给它们。

完成此任务的最佳方法是什么?

1 个答案:

答案 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的副本存储在向量中。