如何创建使用该类创建的所有对象的链接列表?

时间:2018-05-30 22:32:46

标签: c++ list class methods

你好

我有A类,该类有构造函数,mutator方法,检查器方法等。我怎样才能创建一个用该类创建的所有对象的链接列表(所有对象,我的意思是,如果通过mutator方法更改了“new”对象,也应该将其作为新对象链接)。如果可能的话,举个小例子。

2 个答案:

答案 0 :(得分:1)

最简单的方法是使用静态列表,并从构造函数和析构函数中修改它。例如:

class A {
    static std::list<A *> s_instances;

public:
    A() { A::s_instances.push_back(this); }

    ~A() { A::s_instances.remove(this); }
};

答案 1 :(得分:0)

以下是Sid S的意思:

<强> A.H

class A {
public:
    A(vector<A*>& a_objects_vector) {
        a_objects_vector.push_back(this);
    }
    ~A(vector<A*>& a_objects_vector) {
        a_objects_vector.remove(this);
    }
};

<强>的main.cpp

#include "A.h"

int main() {
    vector<A*> all_a_objects;
    A a(all_a_objects), *a1 = new A(all_a_objects);
    /*Do your magic here...*/
    delete a1;
    return 0;
}