노드 추가, 노드 삭제 및 목록에서 반복적으로 검색과 같은 몇 가지 기본 기능을 사용하여 연결된 목록 클래스를 작성하려고합니다. 목록의 머리글을 개인 변수로 정의했지만 재귀 검색 함수에 액세스해야하므로 머리글 포인터를 반환하는 GetHead() 함수를 정의하려고했습니다. 그러나 NetBeans에서 컴파일하는 데 문제가 있습니다. 문제에 거기에 내가 컴파일 할 때연결된 목록 클래스의 구조체에 대한 포인터 반환
nodePtr List::GetHead(){
return head;
}
, 나는
error: unknown type name 'nodePtr'
error: cannot initialize return object of type 'int'
with an lvalue of type 'nodePtr' (aka 'List::node *')
를 얻을 : 여기
다음과 같이class List{
private:
typedef struct node{
int data;
node* next;
}*nodePtr;
nodePtr head;
nodePtr curr;
nodePtr temp;
public:
List();
void AddNode(int addData);
void DelNode(int delData);
void PrintList();
void SearchRecursive(nodePtr Ptr, int searchVal);
nodePtr GetHead();
};
GetHead() 함수는 클래스의 헤더입니다 구조체 노드에 포인터를 어떻게 반환합니까?
'nodePtr GetHead();''private' 클래스 섹션에서'nodePtr'이 선언 되었기 때문에 이것은'public' 액세스 범위에서 작동하지 않습니다. –
@ πάνταῥεῖ 실제로, 'auto'를 사용하면 작동합니다. 당신이 개인적인 것을 지명하지 않는 한 ... – juanchopanza
@juanchopanza 아, THX! 좋은 점은 '자동'에 대해 생각하지 않았다는 것입니다. –