no match for 'operator>>' in 'std::cin >>

cissine Messages postés 16 Date d'inscription dimanche 26 avril 2009 Statut Membre Dernière intervention 21 mai 2010 - 28 nov. 2009 à 11:27
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 - 1 déc. 2009 à 00:21
Bonjour,
Mon problème est le suivant :
lors ce que je compile mon programme C++ sous codeblocks ou visual c++ 2008 express j'ai cette erreur là:
In member function void Banque::interfaceCreerClient()
" no match for 'operator>>' in 'std::cin >> nomClient

voici le code :
void Banque::interfaceCreerClient() {
cout << endl;
cout << "Entrez le nom du nouveau client :" << endl;
String nomClient;
cin >> nomClient;

if(isClientExiste(nomClient)) {
cout << "Un client du meme nom existe deja." << endl;
interfaceCreerClient();
} else {
creerClient(nomClient);
cout << "Client cree." << endl;
interfaceAdministrateur();
}

J'ai aussi declarer un "using namespace std;" pour ne plus marquer std::cin ou std::cout
Merci d'avance pour votre aide.
A voir également:

16 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
28 nov. 2009 à 13:14
J'ai aussi declarer un "using namespace std;" pour ne plus marquer std::cin ou std::cout

Beurk ! A éviter. Mieux vaut écrire std::, ça t'éviteras bien des problèmes plus tard. Si tu veux vraiment écrire cout au lieu de std::cout, préfère : "using std::cout;". Faire sauter tout les namespaces, ce n'est pas très judicieux...

Sinon, pour ton erreur, il te dit qu'il ne sait pas comment remplir la variable nomClient, car celle-ci n'est pas de type string, mais est de type String. Donc il va chercher la surcharge de l'opérateur >> dans la classe personnalisé String.
Est-ce une faute de frappe, ou as-tu vraiment créer une classe String ?
0
Rejoignez-nous