Проблемы с шаблонными классами и наследованием - в List нет нестатического элемента данных или базового класса

0

Я относительно новичок в 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 происходят из классов шаблонов. Любая помощь будет большой.

Теги:
templates
inheritance

1 ответ

0
Лучший ответ

Вместо:

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

Использование:

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

List не является типом. List<StoreOrder*> - это тип.

  • 0
    Там написано, что я не могу голосовать за тебя, потому что я новичок здесь, но это сработало. Я ценю помощь.
  • 0
    @ Mattador, однако, вы можете принять ответ.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню