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を呼び出すことは可能でしょうか?