如何通过另一个类将共享指针传递给一个类?

How to pass shared pointer to a class through another class?

本文关键字:一个 另一个 何通过 共享 指针      更新时间:2023-10-16

>我有一个包含共享指针向量的类A

class A
{
std::vector<std::shared_ptr<object>> vec;
A(std::vector<std::shared_ptr<object>> vec_) : vec(vec_) {}
};

以及包含许多A的类B

class B
{
std::vector<A> manyA;
//What should the constructor look like?
};

B需要将shared_ptrs作为其构造函数的输入,然后初始化其所有A对象并将共享 ptrs 分发给它们。

实现这一目标的最佳方法是什么?

我建议将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 的副本。

相关文章: