是否可以迭代结构或类中的所有元素?

use*_*311 5 c++ c++11

是否可以迭代结构或类中的所有元素?

例如,如果我有三个不同类型的元素的结构:

struct A {
    classA a;
    classB b;
    classC c;
};
Run Code Online (Sandbox Code Playgroud)

然后我需要一些迭代器,这样方法next()会给我下一个元素的值.问题是,如您所见,值具有不同的类型.

Sea*_*ean 4

不,不是用原来的语言。

您可以通过从公共基础派生类,然后实现自己的迭代器以在遍历迭代器时返回指向每个项目的指针来实现此目的。

或者将项目放入 a 中std::vector并使用它来提供迭代。