2011-11-26 2 views
0

이 질문을하기 전에 더 많은 연구를해야 할 것이지만 온라인 검색에 너무 좌절감을 느끼고 있습니다.해시 테이블을 구현하여 "범위"오류가 발생하는 함수를 삽입하십시오.

임은 학교 배정을하고는 해시 테이블을 구현하는 것을 포함, 그래서 내가 Hashtable.h 안쪽이

private: 

Node **buckets; //trying to create an array of pointers 

Hashtable.cpp 내부처럼 체인으로 버킷을 초기화 시도
Hashtable::Hashtable() 
{ 
buckets=new Node*[1000]; 
} 

void insert(char * value,int r, string previous) 
{ 
int find=hashfcn(value); 
Node *x =buckets[find]; 
} 

지금 코드 블록을 사용하고 있으며 내가 얻고있는 오류는 삽입 된 줄에 대한 것입니다.

error: 'buckets' was not declared in this scope|

왜 그런지 모르겠지만 누군가가 나를 도울 수 있습니까, 감사합니다!

답변

2

당신은 Hashtable::을 잊어 버렸습니다. 그것은해야한다 :

void Hashtable::insert(char * value,int r, string previous) 
{ 
int find=hashfcn(value); 
Node *x =buckets[find]; 
} 

난 당신이 이미 알고 확신하지만, 지금처럼, 당신은 단지 무료 함수를 정의하고, 그것이 buckets가 무엇인지 모르고있다. 함수 이름 앞에 Hashtable::이라는 멤버 함수를 정의하고, bucketsbuckets이라고하는 Hashtable을 호출하는 멤버 변수를 의미한다는 것을 알 수 있습니다.

관련 문제