我有一個程序可以解決用C語言編寫的大網格中的PDE,但是希望將它移植到C++中來學習面向對象的編程。C++一種或另一種類型的指針?
我的問題是,我有兩個數據結構,讓我們打電話給他們Class1和Class2。爲了讓事情簡單讓我們假設Class1的包含兩個雙打(一個和b)和等級2包含四個雙打(A,B,C和d)。
現在,在運行時,我想要生成某種類型的動態數組,它將根據PDE的條件保持一個類或另一個類。
喜歡的東西:
if (PDEtype == 1) pointer = new Class1[n]
else pointer = new Class2[n]
後
然後,我將需要訪問指針的東西,如:pointer[2].a = 1.0
或pointer[4].d = 10.0
等
一名工會不會起作用,因爲我需要存儲最低的內存量。 (我會與可能數百萬分的大問題)
有沒有辦法在C++中做到這一點?
在此先感謝!
問題是,必須始終有一些方法來確定您正在使用哪個類。一種方法是識別您正在使用的類型的通用屬性(例如,類型)。然而,這不被認爲是好的OOP。另一種方法是通過虛擬方法(多態)。這兩個都會增加對象的大小。如果你關心數據密度(數百萬分),你應該堅持使用C,因爲C++ OOP不會提供任何額外的好處。如果你確實要跟OOP一起學習繼承和多態。 – Artomegus
我認爲這是一個「描述你的問題,而不是你決定採取的第一步」的經典案例。 –