Bunu çözemiyorum.Özet şablon taban sınıfının bir işaretçisi?
template <class T> class Dendrite
{
public:
Dendrite()
{
}
virtual ~Dendrite()
{
}
virtual void Get(std::vector<T> &o) = 0;
protected:
std::vector<T> _data;
};
Şimdi, Dendrite tam kullanımını belirtir hangi Bu kaynaklanıyor: Aşağıdaki hangi , soyut bir şablon temel sınıfı olması gerekir.
Şimdi sorun.
Belirli bir türü olmayan taban sınıfına işaretçi vektörünü nasıl oluşturabilirim? Öğeleri daha sonra iterek belirtmek istiyorum. Şunlar gibi:
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>()).
};
Bu mümkün mü yoksa ben burada çok basit bir şey eksik miyim?
template <class T> class Dendrite : public IDendrite
{
public:
Dendrite()
{
}
virtual ~Dendrite()
{
}
void Get(std::vector<T> &o) = 0;
protected:
std::vector<T> _data;
};
ve sonra IDendrite sınıf işaretçileri olarak saklanabilir ediyoruz:
Benzer: http://stackoverflow.com/questions/1479498/how-to-subclass-a-templated-base -sınıf –