STLのリストについて
Posted: 2009年5月06日(水) 23:23
初投稿です。よろしくお願いします。内容はSTLのリストについてです。
list<Super> tmp;
で確保したリストにSub1,Sub2…などの派生クラスのインスタンスを格納し、
派生クラスのdrawを呼び出すことは可能でしょうか?
class Super{
public:
virtual void draw();
};
class Sub1 : public Super{ //Sub2なども存在する
public:
virtual void draw();
};
というクラスがあるときlist<Super> tmp;
で確保したリストにSub1,Sub2…などの派生クラスのインスタンスを格納し、
tmp.push_back(Sub1());
tmp.push_back(Sub2());
list<Super>::iterator itr = tmp.begin();
list<Super>::iterator itrEnd = tmp.end();
for( ; itr != itrEnd; itr++){
itr->draw();
}
このようにdrawを呼び出していますが、親のdrawが呼び出されてしまっています。派生クラスのdrawを呼び出すことは可能でしょうか?