如何使c++中类的所有对象都输出
要使C++中类的所有对象都输出,可以在类中定义一个静态成员变量,并在构造函数中将每个对象的地址存储在该变量中。然后,可以编写一个静态成员函数来遍历该变量并输出每个对象的内容。
以下是一个示例代码:
#include <iostream>
using namespace std;
class MyClass {
private:
int value;
static MyClass* objects[100];
static int count;
public:
MyClass(int v) {
value = v;
objects[count++] = this;
}
static void printAll() {
for (int i = 0; i < count; i++) {
cout << objects[i]->value << endl;
}
}
};
MyClass* MyClass::objects[100];
int MyClass::count = 0;
int main() {
MyClass obj1(1);
MyClass obj2(2);
MyClass obj3(3);
MyClass::printAll();
return 0;
}
在上面的代码中,我们定义了一个静态成员变量objects,用于存储所有对象的指针。在构造函数中,我们将this指针存储在objects数组中,并且每次构造函数调用时,count变量会自增。最后,我们编写了一个静态成员函数printAll,该函数遍历objects数组并输出每个对象的值。
在main函数中,我们创建了三个MyClass对象,然后调用MyClass::printAll()函数输出所有对象的值
原文地址: https://www.cveoy.top/t/topic/dJp9 著作权归作者所有。请勿转载和采集!