模板类和继承的问题 - ' List'没有命名非静态数据成员或基类

时间:2014-12-06 05:30:18

标签: c++ templates inheritance

我对c ++比较陌生,并且很难解决我正在做的事情。我希望我的描述不会太混乱,但我有两个独立的类层次结构。两者的基础都是类模板。

类层次结构如下

template <class T>
class Order {}

// StoreOrder inherits from Order
class StoreOrder: public Order<Item *> {}

类层次结构二如下。这里棘手的部分是OrderList

template <class T>
class List{}

// OrderList inherits from List
class OrderList : public List<StoreOrder *>{}

OrderList::OrderList(): List(), DatabasePath(""){} 

当我将StoreOrder作为List模板类型传递时,构造函数中出现错误

'List' does not name a non-static data member or base class

所有类在我使用它们的其他情况下都能正常工作,所以我认为它与StoreOrder和OrderList都来自模板类的事实有关。任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

而不是:

OrderList::OrderList(): List(), DatabasePath(""){} 

使用:

OrderList::OrderList(): List<StoreOrder *>(), DatabasePath(""){} 

List不是一种类型。 List<StoreOrder*>是一种类型。