2010-11-27 13 views
1

J'ai ce code:C++ passage par référence: erreur: aucune fonction correspondante pour l'appel

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

Je reçois cette erreur:

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)

Je ne comprends pas où cette chaîne & vient en l'erreur - et comment puis-je l'amender - aidez s'il vous plaît.

Répondre

7

La méthode add_application accepte 3 chaînes, mais vous n'en spécifiez que 2 dans votre appel.

+0

Merci -well - Je pense que je dois supprimer mon compte maintenant: honte: –

+0

@user: Je me souviens avoir fait l'erreur plusieurs fois (et étant incapable de trouver quel est le problème sans l'aide de quelqu'un) :-) Deux paires d'yeux est certainement mieux qu'un. – Vlad

3

Les références viennent simplement du compilateur ne trouvant pas une fonction appropriée à appeler qui correspond aux valeurs que vous essayez de passer, et devinant à quoi pourrait ressembler la signature de la fonction.

Comparer avec le candidat listé qui accepte trois, pas deux, paramètres de chaîne.

+0

Merci - voir ci-dessus –