friend <class T> class DoublyLinkedList
должно быть
template <class U> friend class DoublyLinkedList;
или
friend class DoublyLinkedList<T>;
в зависимости от того, с какими экземплярами действительно нужно дружить; и аналогично для других объявлений друзей.
DoublyLinkedList qlst;
должно быть
DoublyLinkedList<T> qlst;
, поскольку DoublyLinkedList
- это шаблон, а не тип.
Не должно быть точки с запятой перед телом функции в DLLStack::push
:
void push(const int& el);
{lst.addToDLLHead (el);}
У вас есть нежелательный (
без соответствия )
в DLLstack::pop
:
{return (lst.deleteFromDLLHead();}
и нежелательных {
в DLLQueue::deque
:
{ return {lst.deleteFromDLLHead ();}
Существуют различные опечатки (например, объявление члена stlst
и ссылки на него по-разному lst
и list
) - ошибки компилятора будут указывать вам непосредственно на них.
DoublyLinkedList::isDLLEmpty
должен быть объявлен const
, поэтому его можно вызывать из const
функций-членов других классов (как только вы исправите опечатки, вызывающие его isEmpty
).
В DoublyLinkedList::searchdelete
, delete DLLNode<T>(tmp)
должно быть просто delete tmp
. Вам также нужно исправить указатели в узлах по обе стороны от удаленного и вернуть значение типа T
(предположительно i
), а также исправить поведение цикла, чтобы он действительно искал правильный узел (как есть, он перебирает до конца, затем удаляет нулевой указатель, в результате чего он ничего не делает).
Наконец, ~DLLQueue
пытается вызвать DoublyLinkedList::clear
, который не существует. Вы должны реализовать либо это, либо деструктор для DoublyLinkedList
(или обоих). Как таковой, список является утечкой памяти. Он также должен иметь конструктор копирования и оператор присваивания (просто объявленный как private, если вы не хотите, чтобы класс был копируемым).
Кроме того, вы не должны использовать зарезервированные имена (начинающиеся с подчеркивания, такие как _DLLQUEUE_H_
) в качестве включаемых охранников. Вы также не должны помещать using namespace std;
в заголовочные файлы; пользователь заголовочного файла может не захотеть, чтобы глобальное пространство имен было загрязнено.