Я новичок в шаблонах на С++ и работаю над проектом, в котором мне нужно реализовать двусвязный список с использованием шаблона. Однако я не могу получить доступ к следующим и предыдущим элементам узла.
Например, в моем деструкторе я не могу использовать curr->, чтобы вызвать варианты использования следующего или предыдущего. IntelliSense просто говорит: «Нет доступных членов». Кроме того, я могу найти ошибки только во время сборки ... никаких красных линий, предупреждений, ничего не появляется заранее. Мне любопытно, почему это не работает .... это ошибка или так задумано? Если да, то где мой шаблон неверен до сих пор?
template<class ItemType>
class SortedList
{
public:
SortedList();
~SortedList();
bool Insert (ItemType toAdd);
bool Delete (ItemType toDelete);
void Print();
private:
SortedList ( const SortedList & copyFrom );
SortedList & operator= ( const SortedList & assignFrom );
struct Node
{
Node ( ItemType item, Node * p = NULL, Node * n = NULL )
{ data = item; prev = p; next = n; }
ItemType data;
Node * prev, * next;
};
Node * list;
};
template<class ItemType>
SortedList<ItemType>::SortedList()
{
list = NULL;
}
template<class ItemType>
SortedList<ItemType>::~SortedList()
{
Node * curr = list;
while ( curr != NULL )
{
Node * tempNext = curr->next;
delete curr;
curr = tempNext;
}
}