Реализация хеш-таблицы, вставка функции, приводящая к ошибкам "области видимости" - PullRequest
0 голосов
/ 26 ноября 2011

Мне, вероятно, следует провести дополнительное исследование, прежде чем я задам этот вопрос, но я слишком расстроен поиском в Интернете.

Я выполняю школьное задание, и это включает в себя реализацию хэш-таблицы, поэтому я попытался инициализироватьведро с цепочкой, как это

внутри 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];
}

Я сейчас использую кодовые блоки и получаю ошибкудля строки во вставке

ошибка: «ведра» не были объявлены в этой области |

Я понятия не имею, почему это не так, кто-то может мне помочь, спасибовы!

1 Ответ

2 голосов
/ 26 ноября 2011

Вы забыли Hashtable::. Должно быть:

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

Я уверен, что вы уже знаете это, но, как и сейчас, вы просто определяете свободную функцию, и она понятия не имеет, что такое buckets. Вам нужно указать, что вы определяете функцию-член Hashtable с Hashtable:: перед именем функции, тогда он может видеть, что под buckets вы подразумеваете переменную-член вызывающего Hashtable с именем buckets.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...