繁体   English   中英

模板类和继承问题-“列表”未命名非静态数据成员或基类

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

我对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都从模板类派生的事实有关。 任何帮助都会很棒。

代替:

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

采用:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM