という基底クラスがあり、
class Hoge1:HogeBase
{
//コンストラクタとか略
//virtual とかもとりあえず略
void Draw();
}
class Hoge2:HogeBase
{
//コンストラクタとか略
//virtual とかもとりあえず略
void Draw();
}
std::list<HogeBase> list;
Hoge1 hoge1;
Hoge2 hoge2;
list.push_back(hoge1);
list.push_back(hoge2);
for (HogeBase hoge : list)
{
hoge.Draw();
}
Baseクラスで変数定義も行わなければならないという事態ですのでインターフェースも使用できません。
virtualとかoverrideも試してみたのですがやはりHogeBase側の関数が呼ばれてしまいます。
「std::list<HogeBase> list」を用いることは確定という前提で、継承先の関数を呼ぶ方法はございませんでしょうか。