2011-10-07 57 views
0

我正在嘗試製作一個模擬器類,它將使用隊列將列車從列車中添加到隊列中,因此它將成爲車隊隊列。運輸也是火車類的數據類型。使用隊列類來排列列車的車廂 - C++

我將使用一種方法在列車到達時排隊,將它們添加到不同的隊列中。一旦他們的貨物卸貨,我也會有一種方法讓列車出列。

我有一列火車類有一個私有變量:

LinkedList<Carriage> *list; 

Queue類有一個私有變量:

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

當我這樣做時,我得到錯誤,所以我知道我做錯了我的構造函數,因爲它們都是linkedlists,我需要使用循環將車廂分配到隊列嗎?

我需要幫助的是讓火車車廂進入隊列。

謝謝:)

+0

有什麼問題? – crazyjul

+0

那麼你的問題是什麼? – 2011-10-07 12:00:24

+0

您需要提出更具體的問題。 「我不確定如何實施」並不是非常具體。你有什麼嘗試?你想要什麼樣的建議? – Mat

回答

0

你傳入LinkedList類型的參數傳遞給一個構造函數採用的datatype陣列,這會導致錯誤的參數。

但是,您可以循環訪問每個train1元素,並將push循環到Queue

作爲說明,pushpopstack的函數名稱。 Queue已有enqueuedequeue

+0

我在某處讀到新的C++庫對棧和隊列使用push和pop。 那麼你是否說我需要改變構造函數來接受列車對象,然後在構造函數循環中通過列車中的每個位置將它推入隊列? – cheeseman