Я относительно новичок в 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' 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*>
- это тип.