2014-09-04 67 views
-1

我的C++現在有點生疏如此愚蠢的問題 - 如何將各種類型存儲爲一種類型?如何在C++中將各種類型存儲爲一種類型?

我所擁有的是類型信息(而不是C++意義上的)和數據本身。第一個是enum,數據可以是intvector<string>。我必須將它們存儲在一個vector<T> - 問題是應該是什麼Tvoid*

後來根據我的enum類型,我可以下載或上傳數據,加載,保存,傳遞,這裏沒有問題。

在C#中它將是object,但C++沒有公共根類型,並且我的類型也沒有公共根類型。

我使用C++ 11。

+0

繼承(例如,'B類')並且使用動態多態性(例如'vector ')。 – 101010 2014-09-04 12:09:05

+0

@ 40two,不可能,你不能重新定義int。另外,我沒有定義類型,我只接收數據,我只需要請將它們存儲在容器中 – greenoldman 2014-09-04 12:10:06

+1

如何[Boost any](http://www.boost.org/doc/libs/1_56_0/doc/html/any.html)? – 2014-09-04 12:12:54

回答

1

如果有已知類型的有限列表(它看起來像你這樣做,如果只是數據類型intvector<string>,一個不錯的選擇將是從一個基類使用Boost Variant


+0

哈!謝謝。在我的情況下,它甚至比任何提升都好,因爲事實上,我有限的,小的,事先知道的類型。 – greenoldman 2014-09-04 20:16:11

相關問題