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;
};

Мне кажется, это самый простой способ. Таким образом, вы можете сохранить исходную структуру, не переходя в наследование.

Всего наилучшего.

Другие вопросы по тегам