私がやりたいことは、リストがあることですstd::list<Displayable> display_queue
Displayable は次のように定義されDisplayable.h
ています。
class Displayable {
public:
int x, y;
Displayable() : x(0), y(0) {}
Displayable(int x, int y) : x(x), y(y) {}
};
そしてDifferentDisplayable
次のように:
class DifferentDisplayable : public Displayable {
public:
std::string id;
DifferentDisplayable() : Displayable(), id("") {}
DifferentDisplayable(int x, int y) : Displayable(x, y), id("") {}
DifferentDisplayable(int x, int y, std::string id) : Displayable(x, y), id(id) {}
};
リストに追加された項目は次のとおりです。
Displayable disp_one;
DifferentDisplayable disp_two(10, 10, "the id");
display_queue.push_back(disp);
display_queue.push_back(disp_two);
からDifferentDisplayable
派生しDisplayable
ているため、リストに格納できますが、次のようにリスト (display_queue) を反復処理するときに、std::string id
どのようにアクセスできるか、またはアクセスできるかはわかりません。DifferentDisplayable
for (std::list<Displayable>::iterator i = display_queue.begin(); i != display_queue.end(); i++) {
// insert code here
}
ご回答ありがとうございます。