Problème urgent C++: aucun opérateur global
Résolu/Fermé
axelwolf87
-
2 janv. 2010 à 15:23
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 2 janv. 2010 à 21:26
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 2 janv. 2010 à 21:26
3 réponses
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
2 janv. 2010 à 19:07
2 janv. 2010 à 19:07
biblio.tab[i].n_auteur
ceci est déclaré de type string. On s'attend donc à ce qu'il y ai une chaine. Par exemple : "Molière" (je suppose n_auteur est un raccourci pour nom_auteur ? )
Ensuite tu fais :
Ce qui n'a aucun sens car pour ton tableau la seule chose qui a un sens à mettre dans les crochets, c'est un nombre : monTableau[24] ou biblio.auteur[43].
C'est pour cela que le compilateur te donne ce message étrange pour toi apparemment : error C2677: '[' binaire : aucun opérateur global trouvé qui accepte le type 'std::string' (ou il n'existe aucune conversion acceptable)
(l'opérateur "crochet" n'existe pas en version qui accepte une chaine, donc il ne trouve rien à appliquer, et le pauvre compilateur est perdu!)
corrige déjà ça, et essaye de comprendre pourquoi tu as la deuxième ;).
ceci est déclaré de type string. On s'attend donc à ce qu'il y ai une chaine. Par exemple : "Molière" (je suppose n_auteur est un raccourci pour nom_auteur ? )
Ensuite tu fais :
biblio.auteur[biblio.tab[i].n_auteur], c'est comme si tu fais :
biblio.auteur["Molière"]
Ce qui n'a aucun sens car pour ton tableau la seule chose qui a un sens à mettre dans les crochets, c'est un nombre : monTableau[24] ou biblio.auteur[43].
C'est pour cela que le compilateur te donne ce message étrange pour toi apparemment : error C2677: '[' binaire : aucun opérateur global trouvé qui accepte le type 'std::string' (ou il n'existe aucune conversion acceptable)
(l'opérateur "crochet" n'existe pas en version qui accepte une chaine, donc il ne trouve rien à appliquer, et le pauvre compilateur est perdu!)
corrige déjà ça, et essaye de comprendre pourquoi tu as la deuxième ;).
J'ai bien compris que le string lui posait problème, mais je ne vois pas comment afficher le nom de l'auteur suivi de son prénom.
J'aimerais bien avoir une correction de mon code, parce que je ne vois pas comment résoudre cela, je suis un débutant.
Merci d'avance.
J'aimerais bien avoir une correction de mon code, parce que je ne vois pas comment résoudre cela, je suis un débutant.
Merci d'avance.
C'est bon, problème résolu, il suffisait de mettre : biblio.auteur[i].nom
Problème résolu, merci de m'avoir fait bidouiller.
Problème résolu, merci de m'avoir fait bidouiller.
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
2 janv. 2010 à 21:26
2 janv. 2010 à 21:26
de rien c'est comme ça qu'on apprend le mieux ;).
Mais c'est vrai que pour débuter , les messages du compilateur ne donnent souvent pas la vrai raison de l'erreur, c'est difficile d'arriver à retrouver le véritable bug à partir de l'erreur.
Mais c'est vrai que pour débuter , les messages du compilateur ne donnent souvent pas la vrai raison de l'erreur, c'est difficile d'arriver à retrouver le véritable bug à partir de l'erreur.