2010-11-27 5 views
1

Ich habe diesen Code:C++ vorbei Referenz: Fehler: keine passende Funktion für Aufruf

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()); 
} 

ich diesen Fehler:

air_classes.cpp:153: error: no matching function for call to `Port::add_application(int, std::string&, std::string&, time_t, time_t, bool)'

air_classes.cpp:98: note: candidates are: bool Port::add_application(int, std::string, std::string, std::string, time_t, time_t, bool)

Ich verstehe nicht, wo diese Zeichenfolge & herkommt in der Fehler - noch wie kann ich es ändern - bitte helfen.

Antwort

7

Die Methode add_application akzeptiert 3 Strings, aber Sie geben nur 2 von ihnen in Ihrem Aufruf an.

+0

Danke - naja - ich glaube, ich muss meinen Account jetzt löschen: schäme mich: –

+0

@user: Ich erinnere mich, wie ich den Fehler so oft gemacht habe (und nicht finden konnte, was das Problem ohne jemandes Hilfe ist) :-) Zwei Augenpaare sind sicherlich besser als eines. – Vlad

3

Die Referenzen stammen einfach vom Compiler, der keine geeignete Funktion zum Aufrufen findet, die mit den Werten übereinstimmt, die Sie übergeben möchten, und erraten, wie die Funktionssignatur aussehen könnte.

Vergleichen Sie mit dem aufgelisteten Kandidaten, der drei, nicht zwei, String-Parameter akzeptiert.

+0

Danke - siehe oben –