模板类和继承问题 - 'List'不命名非静态数据成员或基类
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 *> {}
类层次结构二如下所示。这里棘手的部分在订单列表中
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*>
是一种类型。
相关文章:
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 静态数据成员模板专用化的实例化点在哪里
- 调用在 HXX 文件中声明的静态数据成员
- 虚拟成员函数的定义是否强制在同一转换单元中动态初始化静态数据成员?
- 错误: 无效使用非静态数据成员"应用程序::应用程序构造函数"
- 静态数据成员:它"const declaration / constexpr definition"起作用?
- 何时需要定义类的静态数据成员 (un/-)
- 为什么静态数据成员不能在c++11中的类中初始化
- 静态数据成员的模板专用化
- 拒绝包含某些公共静态数据成员的类型
- GCC:在调试构建中优化的静态数据成员
- 类模板静态数据成员定义/声明/初始化
- C++ 中的静态数据成员
- 如果类在 C++ 中具有常量或引用类型的非静态数据成员,为什么编译器不提供默认赋值运算符?
- 使用 lambda 函数初始化静态数据成员
- 引用静态数据成员
- 学习C++并在早期示例中遇到错误(在非静态数据成员之前需要构造函数)
- Windows 上的 Clang/LLVM 7 和 8 多次初始化内联静态数据成员(使用 link.exe 和 lld-
- 为什么不能使用"( )"为类的非静态数据成员提供默认值?
- 不带初始值设定项的 constexpr 静态数据成员