2017-07-30 186 views
0

我有一些麻煩,我開始的一個C++項目。我試圖實現基本的鏈表,並且我的嘗試在代表單個節點的列表類中包含代理類。其中一個列表構造函數可以獲得單個參數並使用它初始化列表的第一個節點,但是我無法將該參數傳遞給代理類的構造函數。任何建議如何做到這一點?代理類的構造函數訪問

下面是一些C++代碼

template <class TYPE> 
class list{ 
private: 
    //Proxy class for node representation 
    class node{ 
    private: 
     node* next; 
     TYPE data; 
    public: 
     explicit node() : next(nullptr) {} 
     node (const TYPE& init) : data(init) {} 
     inline node*& get_next(){ 
      return next; 
     } 
     inline TYPE& get_data(){ 
      return data; 
     } 
    }; 

    node* head; 
    unsigned int size; 
    public: 
     explicit list() : head(nullptr), size(0) {} 

     list(const TYPE& init) : list::node(init) {} 
+0

好像你決定使用'目錄:: node'語法,因爲與成員初始化你感到困惑的基類的初始化。在這種情況下,'head'只是'list'的成員,你應該使用成員初始化語法。這個類是否在list中聲明並不重要。 –

回答

0

那麼,你應該參考的node的實例,而不是類本身。另外,請記住,head是您示例中的指針。

嘗試這樣:

list(const TYPE &init) : head(new node(init)) {} 
+1

我懂了!謝謝! – Zarrie