2013-03-16 66 views
3

我想要創建一個LinkedList類,我必須將類的類放入LinkedList類的內部,您如何更喜歡我這樣做?LinkedList類中的節點類

我覺得是這樣的:

Class LinkedList { 
    private: 
    class Node* head; 
    public: 
    class Node { 
     private: 
     int data; 
     Node* next; 
     Node* prev; 
    }; 
}; 

,但我認爲這是不好的。

+1

在C++中,每個名稱在使用前都必須聲明。你*可以*編寫'struct Node * head;'以便立即聲明'Node',而是重新排列代碼。 – 2013-03-16 22:17:42

+0

你是對的,我改變了.. – 2013-03-16 23:25:57

回答

3

我會做這樣的

class LinkedList { 
    private: 
    struct Node { 
     int data; 
     Node* next; 
     Node* prev; 
    }; 
    Node* head; 
    public: 
    ... 
}; 

無需在節點什麼是私有的,因爲它不是鏈表的可用之外。

+0

不錯的想法..但結構是在C,不是嗎?我認爲將它定義爲Class,但是接下來我將不得不在兩個類的公共中定義get,set的許多函數.. – 2013-03-16 23:17:47

+2

結構是C和C++。結構和類之間的C++幾乎沒有區別。如果需要,您也可以在結構中定義get和set函數。結構和類之間的主要區別在於,結構中的所有內容都是由efault公開的,在類中它默認是私有的。但是,你也可以在一個類中的結構和公共項目中擁有私有項目。 – john 2013-03-17 06:16:57