22/02/08 18:34:16.03 SQWxHGFm.net
基底クラスからたくさん派生クラスを作りました。
基底クラスの1つのvirtualメソッドを、各派生クラスでoverrideしました。
基底クラスを指す箱から、派生クラスのメソッドを呼ぶ方法を教えてください。
多少スタイルを変えても実現する方法があればお願いします。
ただし、場合分けやインデックスで対応するのは(派生クラスが増えたときに修正箇所が分散するので)厳しいです。
コンパイラは最近のvisual studioのC++を使っています。
struct Basic{
virtual void work(){cout<<"Basic";}
};
struct B1:public Basic{
void work()override{cout<<"B1";}
}b1;
struct B30:public Basic{
void work()override{cout<<"B30";}
}b30;
void main(){
Basic basic_array[9];
basic_array[0]=b30;
basic_array[0].work();//基底クラスのメソッドが呼ばれて Basic と表示されてしまう。
}