Я довольно новичок, когда речь заходит о шаблонах дизайна, поэтому я с трудом хватаю концепцию дизайна дизайна декоратора. Возможно ли украсить односвязный класс списка классу с двойным соединением, который наследуется от него? Я хотел бы украсить следующий класс:Использование шаблона дизайна декоратора для создания дважды связанного списка, украсив одноуровневый список
ListAsSLL.h:
#ifndef LISTASSLL_H
#define LISTASSLL_H
class ListAsSLL
{
protected:
struct node{
int i;
struct node* next;
};
node* head;
node* tail;
int listSize;
public:
ListAsSLL();
virtual void addToBeginning(int obj);
virtual void addAtPos(int obj, int i);
virtual void addToEnd(int obj);
virtual void del(int i);
virtual void overwrite(int obj, int i);
virtual void grow();
virtual void shrink();
};
#endif //LISTASSLL_H
Предоставление двусвязного списка класса ту же функциональность с дополнительным признаком имеется структура с указателем на предыдущий узел.
Надеюсь, кто-то может пролить свет на то, как это сделать. Заранее спасибо.
Что такое интерфейс для двойного связанного списка, который вам нужно реализовать? – Slava
@Slava Тот же интерфейс, что и для ListAsSLL – Keagansed
Тогда вы не понимаете, для чего используется шаблон декоратора. Он используется, когда у вас есть требование для одного интерфейса, и у вас есть другой. Поэтому вы используете декоратор для обеспечения требуемого интерфейса. То, что вы пытаетесь сделать совершенно не связанным с рисунком декоратора. – Slava