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 из них в своем вызове.

Ссылки просто исходят от компилятора, который не находит подходящую функцию для вызова, которая соответствует значениям, которые вы пытаетесь передать, и угадывает, как может выглядеть сигнатура функции.

Сравните с указанным кандидатом, который принимает три, а не два строковых параметра.

Другие вопросы по тегам