Я пытаюсь реализовать стек и очередь. Мне также предоставлен код для проверки как стека, так и очереди (чтобы проверить, правильно ли работают их соответствующие функции).«Ожидаемое имя класса» ... Проблема в реализации деструктора
Я реализовал функции как стеки и quete ,, но при попытке скомпилировать их я получаю ошибку: В деструкторе `Stack :: ~ Stack()» ожидаемых классового имени до „(“ . лексема
в обоих из них
Ниже приводится общий класс Stack:
template <class T>
class Stack
{
List<T> list;
public:
Stack();
Stack(const Stack<T>& otherStack);
~Stack();
}
класс List:
template <class T>
class List
{
ListItem<T> *head;
public:
List();
List(const List<T>& otherList);
~List();
}
Теперь деструктор класса List работает нормально. Поэтому, учитывая это, моя реализация для деструктора была такой:
template <class T>
Stack<T>::~Stack()
{
list.~List();
}
Что я здесь делаю неправильно?
Не вызывайте деструктор явно - язык позаботится об этом для вас. – molbdnilo
Потеряйте 'list. ~ List()' call. Этот член будет самоуничтожиться. – WhozCraig
@ molbdnilo, @WhozCraig Спасибо, ребята, сейчас работает! – mrsinister