我無法弄清楚這一點。我需要有一個抽象的模板基類, 如下:指向抽象模板基類的指針?
template <class T> class Dendrite
{
public:
Dendrite()
{
}
virtual ~Dendrite()
{
}
virtual void Get(std::vector<T> &o) = 0;
protected:
std::vector<T> _data;
};
現在,我從這個指定枝蔓的確切用法派生。
現在的問題。
如何創建指向基類的指針而不指定類型,我想通過稍後將元素推送到指定的類型來指定它?類似於:
class Foo
{
public:
...
private:
std::vector<Dendrite *> _inputs; //!< Unfortunately, this doesn't work...
//! Now I could later on push elements to this vector like
//!
//! _inputs.push_back(new DeriveFromDendrite<double>()) and
//! _inputs.push_back(new DeriveFromDendrite<int>()).
};
這是可能的還是我缺少一些非常基本的東西?
template <class T> class Dendrite : public IDendrite
{
public:
Dendrite()
{
}
virtual ~Dendrite()
{
}
void Get(std::vector<T> &o) = 0;
protected:
std::vector<T> _data;
};
,然後你IDendrite類可以存儲爲指針:
類似:http://stackoverflow.com/questions/1479498/how-to-subclass-a-templated-base -類 – 2009-09-30 13:12:15