私の問題にポリモーフィズムを使用するかどうかを決定しようとしています。以下は、この質問のために作成した私の問題に似たダミーの問題です。
派生クラス Rectangle、Triangle、および Circle を持つ基本クラス Shape があるとします。それらのすべてに Area() 関数が実装されています。形状の n 個のベクトルがあります。vector<Shape*> v_1, v_2, v_3, ..., v_n. 私が望む出力は、それが長方形の場合にのみvector<Rectangle*> maxrec、それぞれに最大面積の形状を格納することです。v_1, v_2, ..., v_n(たとえば、Shape の最大領域v_iが Rectangle の場合、それを maxrec に追加します。そうでない場合は追加しません。)
入力がであるため、要素をに追加する前に要素を要素vector<Shape*>にキャストすることは許容されますか? または、ここで見逃している設計上の欠陥はありますか? ポリモーフィズムは適切ですか?(アルゴリズムの部分には問題はありません。ポリモーフィズムの設計部分だけです。)Shape*Rectangle*maxrec