Простой абстрактный тип данных, связанный список - PullRequest
0 голосов
/ 20 февраля 2012

мои классы

class Product
{
...
};

class Perishable : public : Product
{
 public:
 int getday();

};

Я хочу собрать коллекцию как скоропортящихся, так и продуктовых объектов вместе и надеюсь сделать это с помощью связанного списка.

Обычно для связанного списка мыесть что-то вроде

class linkedlist
{
           struct List
           {
             int item;
             ListNode* next; 
           }
          //.... all the functions
};

, но у меня здесь проблема, поскольку данные, которые я хочу сохранить в элементе, не являются целыми числами, а представляют собой продукт или скоропортящиеся, как мне реализовать их как связанный список?1009 *

Ответы [ 2 ]

1 голос
/ 20 февраля 2012

Вам нужны шаблоны.Шаблоны в C ++ поддерживают общее программирование.После объявления шаблона перед вашим классом LinkedList вы можете заменить свой элемент int на элемент T, где T - это заполнитель и будет заменен на соответствующий тип данных (пользовательский или примитивный) в зависимости от того, как вы создаете экземпляр своего объекта.

1 голос
/ 20 февраля 2012

Вы можете сохранить Product* как элемент в связанном списке.Вы должны добавить virtual методы в базовый класс Product, которые будут отправлены соответствующему методу во время выполнения в зависимости от фактического типа объекта, указанного этим указателем.

...