2016-02-03 278 views
-1

我試圖做出能在集合中表示通用數據(POD或對象)的包裝類。基本上,我有一大堆不同類型的數據,我需要添加其他數據(比如讀/寫次數),但我希望能夠在STL容器中表示這些數據。粗糙的例子:模板繼承的類

class Base 
{ 
    int lastUpdate; 
    void SomeMember(); 
} 

template<class T> 
class Object : public Base 
{ 
    T data; 
} 

int main() 
{ 
    std::vector<Base*> data; 
    data.push_back(new Object<int>()); 
    data.push_back(new Object<OtherClass>()); 
} 

是類似上述可能嗎?

+2

你試過編譯它嗎? – NathanOliver

+0

它不適合你,或者你有什麼問題?另外,不要忘記使用智能指針(例如'std :: vector >')。 –

+0

[上面的東西確實可行](http://ideone.com/TEErPC)。你爲什麼不嘗試呢? – Cornstalks

回答

0

這絕對是可能的。你的方法看起來也是正確的。您基本上定義了一個公共基類和一個模板派生類(如代碼示例中所示)。

從你的榜樣唯一缺少的是在類的定義分號。