2013-02-19 2 views
0

C++ 기초와 관련이 있습니다. 단일 링크 된 목록을 만듭니다.클래스 멤버 함수에 대한 포인터를 정의하는 방법

class Linked_List 
{ 
public: Linked_List(); 
    ~Linked_List(); 
     //Member Functions 
    struct node* getHead(void); 
private: 
    struct node{ 
     int d; 
     struct node* next; 
    }*head; 
}; 
struct node (Linked_List::*getHead)(void) 
{ 
    return head; 
} 

나는이 오류가 무엇입니까 :

"error C2470: 'getHead' : looks like a function definition, but there is no parameter list; skipping apparent body".

나는하지만 사용이 구글에서 검색하는 것을 시도했다. 어떤 제안 plz. struct 키워드하면서, 함수 정의에서 불필요하다고,

Linked_List::node* Linked_List::getHead() 
{ 
    return head; 
} 

이 또한주의 사항 :

당신은 멤버 함수에 대한 포인터가 필요하지 않습니다

답변

5

, 당신은 단지 기능에 대한 정의를 제공 할 struct node의 이름을 정의 된 클래스의 이름으로 한정해야합니다.

또한 빈 인수 목록을 지정하는 void 키워드는 필요하지 않습니다. 따라서 다음과 같이 클래스 정의를 다시 작성하는 것이 좋습니다.

class Linked_List 
{ 
private: 
    struct node 
    { 
     int d; 
     struct node* next; 
    }; 
    node *head; 
public: 
    Linked_List(); 
    ~Linked_List(); 
    node* getHead(); 
}; 
+0

무엇이'int d;'입니까? – bash0r

+0

@ bash0r : 잘 모르겠다. OP에게 물어보십시오 : –

+0

아, 그 사람도 보지 못했어요 ... – bash0r

관련 문제