2012-10-19 21 views
1

我對C++比較新,並且正在嘗試第一次構建複雜的模板結構。模板類包含一個對它自己的實例的引用stdvector

我該如何聲明,作爲模板類Foo的成員,Foo *元素的std :: vector,但可以是各種類型的?

#include <vector> 

template <typename T> 
class Foo { 
    T mValue; 
    std::vector< Foo<T>* > mFooParameters; // <---- I would like this vector to contain 
              //  any sort of Foo<T>* elements, 
              //  Foo<int>*, Foo<double>*, etc. 
}; 

它是直截了當的,可能的但複雜的,或不可能的?

謝謝你的回答!

+0

我認爲這是http://stackoverflow.com/questions/6274136/objects-of-different-classes-in-a-single-vector的副本,但我不明白你的問題的文字是如何相關的到它的頭銜。 – jogojapan

+0

謝謝jogojapan。這可能是因爲我迷失在模板裏。我正在查看你的鏈接! – nenj

+0

那麼,它是重複的嗎? (如果沒有,有什麼區別?) – jogojapan

回答

0

如果您的載體類型都有關,使用多態,如在由@jogojapan提供的鏈接解釋,如果類型不是在所有相關的,使用的void*矢量持有指針數據(有點凌亂雖然)

+0

我想我會用一個獨特的,更一般的定義將多態性用於所有可能的'Foo '。謝謝! – nenj

+0

是的,多態性好得多!別客氣! – higuaro

相關問題