2013-03-16 2 views
3

LinkedList 클래스를 만들고 LinkedList 클래스의 Node 클래스를 넣어야합니다. 어떻게해야할까요?LinkedList 클래스의 노드 클래스

는 뭔가처럼 생각 :

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

하지만이 좋지 않다라고 생각합니다.

+1

(C++) 모든 이름은 사용하기 전에 선언해야합니다. 당신은 * Node *를 직접 선언하기 위해'struct Node * head; '라고 쓸 수 있지만 그 대신에 코드를 재정렬하십시오. –

+0

당신 말이 맞아요, 제가 바꿨습니다 .. –

답변

3

나는 그것을 LinkedList의의 사용 가능한 외부가 아니라 이후 개인 될 노드에서 아무것도이

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

필요가 없습니다처럼 그것을 할 것입니다.

+0

좋은 생각 ..하지만 구조체가 C에 있지 않나요? 클래스로 정의하는 것이 좋겠지 만 두 클래스의 공용에서 get, set의 많은 함수를 정의해야합니다. –

+2

struct는 C 및 C++입니다. 구조체와 클래스 사이에는 C++에 거의 차이가 없습니다. 원하는 경우 struct에서 get 및 set 함수를 정의 할 수 있습니다. 구조체와 클래스의 주된 차이점은 구조체의 모든 것이 efault에 의해 public이며, 클래스에서는 기본적으로 private입니다. 그러나 다시 한 번 클래스의 구조 항목과 공용 항목에 개인 항목을 포함 할 수 있습니다. – john