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

Issues with template classes and inheritance - 'List' does not name a non-static data member or base class

本文关键字:静态 数据成员 基类 List 问题 继承      更新时间:2023-10-16

我对 c++ 相对较新,很难弄清楚我正在做的事情的问题。我希望我的描述不会太混乱,但我有两个独立的类层次结构。两者的基础都是类模板。

类层次结构一如下

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

类层次结构二如下所示。这里棘手的部分在订单列表中

template <class T>
class List{}
// OrderList inherits from List
class OrderList : public List<StoreOrder *>{}
OrderList::OrderList(): List(), DatabasePath(""){} 

当我将 StoreOrder 作为列表模板类型传递时,我在构造函数中收到一个错误,该错误说

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

所有类在我使用过的所有其他情况下都可以正常工作,所以我相信这与 StoreOrder 和 OrderList 都派生自模板类这一事实有关。任何帮助都会很棒。

而不是:

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

用:

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

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