C++ Добавление члена данных в структуру из другого базового класса
Хорошего дня. Я занят разработкой кода для проекта в университете и хотел бы узнать, как добавить элемент данных в структуру узла (для связанного списка), но структура была предварительно определена. Я не могу просто определить все это в исходной структуре, как указано в инструкции.
Вот моя структура, расположенная в файле ListAsSSL.h:
struct node
{
node* next;
Object obj;
};
Могу ли я сделать это в другом заголовочном файле:
struct node: node
{
node* previous;
};
Спасибо. Я только что самостоятельно изучил шаблон Decorator, но он показывает только, как это сделать с классами, а не с структурами.
Спасибо за помощь. Ричард
2 ответа
Нет, вы не можете продлить struct
как это. Создать новый struct
вместо наследования, вот так:
struct node
{
node* next;
Object obj;
};
И в вашем другом файле:
struct newNode: node
{
node* previous;
};
И в вашем клиентском коде, коде, который обращается к структуре, вы должны использовать новую структуру вместо старой. Помните, что во многих случаях было создано наследование: чтобы добавить больше возможностей в существующий класс!
Можете ли вы создать новую структуру? Например:
struct nodeV2
{
Object obj;
nodeV2* next;
nodeV2* previous;
};
Мне кажется, это самый простой способ. Таким образом, вы можете сохранить исходную структуру, не переходя в наследование.
Всего наилучшего.