目を通してくれてありがとうございます。
今回C++における、コンテナと多態性?の関係について質問させていただきます。
Aクラスという基底クラスと、それを継承したDerivation001,Derivation002という派生クラスがあったとします。
Derivation001クラスとDerivation002クラスをコンテナにまとめたいと思い、下記のようにAクラスのコンテナを用意してそこにまとめているのですが、それだと派生クラスに記述したメソッドが呼び出せません。
Aクラス
lang
1class A{ 2... 3}
Derivationクラス
lang
1class Derivation001 : public A{ 2 void method(); 3... 4} 5 6class Derivation002 : public A{ 7 void method(); 8... 9}
mainクラス
lang
1class main{ 2 list<A> container; 3 list<A>::iterator begin,end; 4 5 container.push_back(Derivation001(...)); 6 container.push_back(Derivation002(...)); 7 8 begin = container.begin(); 9 end = container.end(); 10 11 12 for(;begin != end; ++begin){ 13 begin->method(); 14 } 15}
どうすればAクラスのコンテナに代入した派生クラスのメソッドを呼び出せますか?
あまりオブジェクト指向について詳しくないので、多態性もよくわかっていない状態です。回答いただけるなら、その回答中にでてきたわからない用語はもちろん自分で調べるので、用語を多用してでも詳しく教えていただけると嬉しいです(できれば平易な回答であることに越したことはないですけどね・・・)。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。