我需要在C ++中定义一个抽象基类,它可以在其节点中保存任何类型的数据。我将在派生类中扩展功能,其中我将指定要保留的表示形式(Matrix或List)。
例如:
Graph<char> *g = new AdjListGraph<char>(10);
g->addEdge(0,1,'c');
Graph<int> *g = new AdjListMatrix<int>(10);
g->addEdge(0,1,100);
最后我想用它如下:
+
我遇到的问题是继承类时。由于基类是一个模板,我希望在继承它时指定类的类型。但这涉及为多种类型的数据重写相同的代码。而且,如果我将自定义对象存储在图表中,那么期望每种类型的专业化将会非常繁琐。
有没有办法绕过这个限制做我打算做的事情?
答案 0 :(得分:0)
由于基类是一个模板,我希望在继承它时指定类的类型。
它与继承模板的类型参数类型相同。
template<class T>
class AdjListGraph : public Graph<T>
{
};