我需要編寫一個類,它接收具有任何「基本」類型的任意數量元素的集合。我也需要能夠知道每個成員的類型(或者至少是類型的大小)。 該類的目的是序列化元素以將它們存儲在固定長度寄存器的文件中。C++中的多態性集合
這是可行嗎?
我知道C++是靜態類型的,並且沒有關於繼承的共同父項(例如Java中的Object)。所以,我不能接收數組或矢量,因爲所有元素都應該具有相同的類型。
我也想到了一個指針數組,但這樣我就不知道元素類型或其大小。
任何想法?
PS:找不到類似的問題,但如果存在,請redirectme。
您可以創建自己的純虛擬基元類型,該類型具有一個函數,該函數需要實現聲明它是什麼類型的類。可能來自一個枚舉。然後,您可以根據枚舉返回的內容將其轉換爲正確的類型,但這似乎是一種骯髒的方式。 (可能有更好的方法) – 2009-10-14 04:33:39
這已經在Boost.Any中實現了,正如Jim所指出的那樣。 – GManNickG 2009-10-14 04:52:33