2016-10-13 3 views
-2

Мой класс определяется в моем файле заголовка, и в моем файле .cpp У меня есть:Как вы называете функцию-член в функции-член вне класса?

bool Card::foo(const std::string &trump) const {...} 

bool Card::bar(const std::string &trump) const { 
    bool oof = foo(const std::string &trump);  
} 

Это не работает по какой-то причине. XCode дает ошибку: ожидаемое выражение. То же самое происходит, когда я пытаюсь:

bool oof = Card::foo(const std::string &trump); 
bool oof = foo(const std::string &trump) const; 
+5

'bool oof = foo (trump);' Вы делаете это слишком сложно. –

+0

Почему const std :: string не входит? – Goldname

+1

Почему они должны быть? –

ответ

0

информация о типе не требуется/разрешается при вызове Foo (сопзЬ станд :: строка часть), потому что язык не работает таким образом. Объявление функции понадобится, но при вызове не указывать тип. Посмотрите на пример Игоря.

2

Проверить

bool Card::foo(const std::string &trump) const {...} 

bool Card::bar(const std::string &trump) const { 
    bool oof = foo(trump); 
} 

Любой из выражения ниже:

bool oof = foo(const std::string &trump); 
bool oof = Card::foo(const std::string &trump); 
bool oof = foo(const std::string &trump) const; 

бы переопределить trump так

bool Card::bar(const std::string &trump) const 

уже определил его.

Смежные вопросы