3
如何創建一個動態的多態對象數組,如果我有一個具有派生類的抽象類,並且不使用STL數據結構類? (向量,列表等)如何多態地創建一個動態的對象數組?
對象
TwoDimensionShape *shapes[2];
shapes[0] = &Triangle("right", 8.0, 12.0);
shapes[1] = &Rectangle(10);
我知道我不能這樣做,因爲你不能創建抽象類的對象的靜態數組:
cin >> x;
TwoDimensionShape *s = new TwoDimensionShape [x];
編輯:
感謝尼克,這個作品:
int x = 5;
TwoDimensionShape **shapes = new (TwoDimensionShape*[x]);
我有一個問題,int x = 5; TwoDimensionShape ** shapes = new(TwoDimensionShape *)[x];編譯器顯示:「TwoDimensionShape *類型的值不能用於初始化TwoDimensionShape類型的實體** – Dog
您在形狀上缺少星號並且OneDimensionShape缺少一個:'TwoDimensionShape ** shapes = new(TwoDimensionShape *)[x]; ' – imreal
嗯,這很奇怪,當我點擊進行編輯並且它在那裏,但仍然給出了一個錯誤 – Dog