2012-02-19 58 views
0

我想在C++中創建一個可以容納不同類對象的數組。C++,對象數組(來自不同類)不使用Stl&Boost

這是我hometask和條件之一的部分是,我不能使用STL,升壓&等

+2

這是一個問題和答案網站,你的問題有點低。 – 2012-02-19 19:30:16

+0

從字面上看,這是不可能的,因爲一個*數組*根據定義只能是一個固定類型的對象數組。 – 2012-02-19 19:54:28

+0

你被教過關於這個功課的課程是什麼?持有不同類別的對象是不常見的,因爲您無法統一處理它們,除非您使用繼承或模板?那是你在學什麼? – 2012-02-19 21:36:26

回答

1

您應該創建基類並從中獲得基類的類。因此,您可以創建數組Base*數組並放置所有派生類。

1

您可以在陣列中存儲指向void*的指針,並將對象投射到void*。但你不應該這樣做!

如果可能,您應該從基類中獲取所有對象,並存儲指向Base*的指針。這是解決此問題的更好方法。

0

相同的容器是否必須同時容納相同類型的對象?如果是這樣,它是否必須能夠保持任何類型?如果是這樣,你唯一的解決方案是使用void*並存儲指向你想存儲的對象的指針。

如果一個容器只能容納一種類型的對象,那麼你可以使用模板來做到這一點。如果同一個容器必須容納不同類型的對象但是您可以對其可容納的類型設置限制,那麼您可以規定它來自某個Base類,並且創建一個Base*的數組。

相關問題