我想決定是否爲我的問題使用多態性。下面是一個類似於我爲這個問題創建的問題的虛擬問題:多態設計
假設我有一個具有派生類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
中存儲最大面積的形狀。 (例如,如果在v_i
最大區域形狀是矩形,我將其添加到maxrec,如果沒有,我不知道。)
由於輸入是vector<Shape*>
,它是可以接受的一個Shape*
元件轉換爲一個Rectangle*
元素將其添加到maxrec
之前?或者我在這裏錯過了一個設計缺陷?多態是否合適? (我沒有算法部分的問題,只是多態性設計部分。)
有人糾正我,如果我錯了,但我認爲他的問題比編程具體更風格化 – aaronman 2013-05-06 19:00:48