我A在std::vector使用C ++智能指针(因此向量符号为std::vector<std::shared_ptr<A>>)中存储一个类(我们称之为)。
#include <iostream>
#include <memory>
#include <vector>
class A : std::enable_shared_from_this<A> {
public:
void doWork();
std::shared_ptr<A> getSharedRef();
};
void A::doWork() { std::cout << "Working..." << std::endl; }
std::shared_ptr<A> A::getSharedRef() { return shared_from_this(); }
class AManager {
static std::vector<std::shared_ptr<A>> aList;
public:
static void init(); // safety because statics
static void doLotsOfWork();
static std::shared_ptr<A> createA();
};
std::vector<std::shared_ptr<A>> AManager::aList;
void AManager::init() { aList = std::vector<std::shared_ptr<A>>{}; }
void AManager::doLotsOfWork() {
for (auto a : aList) {
a->doWork(); …Run Code Online (Sandbox Code Playgroud)