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