У меня есть класс Dictionary
, который имеет вектор строк в словаре. Я беру у пользователя Word
и проверяем, находится ли оно в Dictionary
.Передача объекта класса другому классу
Из-за ограничения реализации, мне нужно передать объект класса Dictionary
(переменного) Lexicon
к Word
классу (в классе Word
мне нужно использовать функцию поиска, которая определена в классе Dictionary
).
Итак, я нахожусь в классе Word
и позвонив по телефону MyWords.search();
. Но мой код не компилируется! Зачем ?
int main()
{
Dictionary Lexicon(dictionary_file)
dictionary_file.close();
cout<<"Please enter a word to be searched in the dictionary:"<<endl;
cin>>word_to_search;
Word Keyword;
Keyword.setter(word_to_search);
Keyword.gettingDictionary(Lexicon);
return 0;
}
void Word::gettingDictionary(const Dictionary& myWords)
{
myWords.search(keyword);// function defined in Dictionary class
//keyword is a member of Word class
}
Вот ошибки, я получаю при попытке компиляции:
++ -c main.cpp
In file included from dictionary.h:22:0,
from main.cpp:19:
word.h:45:31: error: ‘Dictionary’ does not name a type
void gettingDictionary(const Dictionary& myWords);
^~~~~~~~~~
main.cpp: In function ‘int main(int, char**)’:
main.cpp:82:41: error: no matching function for call to ‘Word::gettingDictionary(Dictionary&)’
Keyword.gettingDictionary(Lexicon);
^
In file included from dictionary.h:22:0,
from main.cpp:19:
word.h:45:7: note: candidate: void Word::gettingDictionary(const int&)
void gettingDictionary(const Dictionary& myWords);
^~~~~~~~~~~~~~~~~
word.h:45:7: note: no known conversion for argument 1 from ‘Dictionary’ to ‘const int&’
make: *** [Makefile:7: main.o] Error 1
Ваш код [не работает] (http://importblogkit.com/2015/07/does-not-work/)? –
Опубликуйте [MCVE], который воспроизводит вашу ошибку, пожалуйста. –
Уважаемый пользователь. Человеческий язык также имеет некоторые синтаксические правила. Каждое утверждение должно заканчиваться на '.' (тот же принцип, что и'; 'в C++). Без вашего «.» Ваш вопрос было очень трудно понять. Я отредактировал соответственно. Также имейте в виду, что «не работает» бесполезно. «Не компилирует» делает вещи намного яснее ;-). – Christophe