我对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都来自模板类的事实有关。任何帮助都会很棒。
答案 0 :(得分:0)
而不是:
OrderList::OrderList(): List(), DatabasePath(""){}
使用:
OrderList::OrderList(): List<StoreOrder *>(), DatabasePath(""){}
List
不是一种类型。 List<StoreOrder*>
是一种类型。