C++ передача по ссылке: ошибка: нет соответствующей функции для вызова
У меня есть этот код:
bool Port::add_app_from_wlist(App* a){
stringstream namesurn;
string name, surname;
namesurn << a->get_name();
namesurn >> name >> surname;
return add_application(a->get_id(),name,surname,a->arrived_at_port_by(),a->arrived_by(),a->is_luxury_class());
}
Я получаю эту ошибку:
air_classes.cpp: 153: ошибка: нет соответствующей функции для вызова `Port:: add_application (int, std:: string &, std:: string &, time_t, time_t, bool) '
air_classes.cpp: 98: примечание: кандидаты: bool Port::add_application(int, std::string, std::string, std::string, time_t, time_t, bool)
Я не понимаю, откуда эта строка и откуда взялась ошибка - и как я могу ее исправить - помогите пожалуйста.
2 ответа
Метод add_application
принимает 3 строки, но вы указываете только 2 из них в своем вызове.
Ссылки просто исходят от компилятора, который не находит подходящую функцию для вызова, которая соответствует значениям, которые вы пытаетесь передать, и угадывает, как может выглядеть сигнатура функции.
Сравните с указанным кандидатом, который принимает три, а не два строковых параметра.