如果我创建了这样的课程:
struct test{
int a;
int b;
string c;
};
并想遍历每个数据成员,就好像它是一个数组一样,我该怎么做?(假定成员的数量在将来的更新中可能会发生变化。)
答案 0 :(得分:-1)
我立即注意到C ++不支持不同类型的元素数组,因此您的情况没有解决方案。但是使用相同的成员,您可以创建一个指向成员的指针数组,并在循环中使用它:
struct test {
int a0 = 0;
int a1 = 1;
int a2 = 2;
int a3 = 3;
virtual ~test() {};
};
int main()
{
test t;
int* ptr[4] = { &t.a0, &t.a1, &t.a2, &t.a3 };
for (int i = 0; i < sizeof(ptr) / sizeof(int*); i++)
std::cout << *ptr[i] << std::endl;
return 0;
}