- 957 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 18:34:16.03 ID: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 と表示されてしまう。 }
|

|