Использование класса Queue для очереди вагонов поезда - C ++ - PullRequest
0 голосов
/ 07 октября 2011

Я пытаюсь создать класс симулятора, который будет использовать очередь для добавления вагонов из поезда в очередь, чтобы он стал очередью вагонов. Вагон также является типом данных класса поезда.

Я буду использовать метод, чтобы ставить поезда в очередь по мере их поступления, добавляя их в разные очереди. У меня также будет способ снять поезда с поезда после того, как их груз будет выгружен.

У меня есть класс Train, у которого есть личная переменная:

LinkedList<Carriage> *list;

Класс очереди имеет закрытую переменную:

LinkedList<dataType> *list;

В моем демонстрационном файле я звоню:

Train* train1; //declare a train.

train1 = new Train(arr); //instantiate train with an array of integers

Queue<Carriage> queue1;  //declare a queue.

queue1 = new Queue<Carriage>(train1); //instantiate queue with train data.

У меня проблема с моим классом очереди, я не совсем уверен, как его реализовать.

Моя очередь class.h:

template <typename dataType> //dataType
class Queue
{

public:
           Queue();

       Queue(dataType arr[]);

           ~Queue();

           void pop();

           void push(dataType data);

private:

    LinkedList<dataType> *list;

};

#include "Queue.template"
//there is also a namespace and a macroguard, left them out of this.

РЕДАКТИРОВАТЬ - недостаточно информации.

В приведенном выше коде демонстрационного файла я хочу иметь возможность вызвать queue1 = new Queue (train1);

Когда я делаю это, я получаю ошибки, так что я знаю, что я делаю что-то не так с моим конструктором, так как они оба являются связанными списками, нужно ли использовать цикл, чтобы назначать каретки в очередь?

Мне нужна помощь с доставкой вагонов в очередь.

Спасибо:)

1 Ответ

0 голосов
/ 07 октября 2011

Вы передаете аргумент типа LinkedList в конструктор, принимающий аргумент массива datatype, который вызывает ошибку.

Вы можете, однако, пройти через каждый элемент train1 и push до Queue.

Как примечание, push и pop являются именами функций для stack. Queue имеет enqueue и dequeue

...