2013-03-16 65 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