c ++按引用传递:错误:没有匹配的调用函数

时间:2010-11-27 14:23:16

标签: c++ string compiler-errors parameter-passing

我有这段代码:

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&amp;,std :: string&amp;,time_t,   time_t,bool)'

     

air_classes.cpp:98:   注意:候选人是:布尔   端口:: add_application(INT,   std :: string,std :: string,std :: string,   time_t,time_t,bool)

我不明白这个字符串&amp;来自错误 - 也不知道如何修改它 - 请帮忙。

2 个答案:

答案 0 :(得分:7)

方法add_application接受3个字符串,但您在通话中只指定了2个字符串。

答案 1 :(得分:3)

引用只是来自编译器没有找到适合调用的函数,它匹配您尝试传递的值,并猜测函数签名可能是什么样的。

与列出的候选人比较,该候选人接受三个而不是两个字符串参数。