visualstar
Messages postés18Date d'inscriptionlundi 18 février 2002StatutMembreDernière intervention17 février 2005
-
3 déc. 2004 à 20:10
plus_plus_fab
Messages postés232Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention 8 janvier 2005
-
4 déc. 2004 à 13:49
Bonjour,
J'ai un problème en C++ avec les string.
Comment peut-on faire pour passer un string à une fonction. Dans cette fonction, je fais un cin ; mais ça marche pas, ça modifie rien dans le main. SImple illustration :
plus_plus_fab
Messages postés232Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention 8 janvier 2005 3 déc. 2004 à 20:32
salut,
renseigne toi sur le passage par valeur / vs passage par reference.
pour simplifier :
void foo(string); // une copie du string est passé à foo. L'original sera donc intacte.
void foo(string&); //une rérérence vers le string est passé à foo. L'original peut etre modifié.
existe aussi (entre autres) void foo(const string&); // une rérérence vers le string est passé à foo. //L'original ne peut pas etre modifié.
visualstar
Messages postés18Date d'inscriptionlundi 18 février 2002StatutMembreDernière intervention17 février 2005 3 déc. 2004 à 23:34
En fait, maintenant que j'intègre ça dans mon prgramme qui est plus grand et qui utilise des classes, il me mets plein d'erreur du genre :
Voilà ce que j'ai dans un header :
#include <string>
#define NB 50
class client{
protected:
string Nom_Client, Prenom_Client;
Et les erreurs du style :
error C2146: syntax error : missing ';' before identifier 'Nom_Client'
error C2501: 'client::string' : missing storage-class or type specifiers
error C2501: 'client::Nom_Client' : missing storage-class or type specifiers
error C2501: 'client::Prenom_Client' : missing storage-class or type specifiers
>en montrant la déclaration des données membres de type string !!!
error C2143: syntax error : missing ')' before '&'
error C2143: syntax error : missing ';' before '&'
error C2460: 'client::string' : uses 'client', which is being defined
visualstar
Messages postés18Date d'inscriptionlundi 18 février 2002StatutMembreDernière intervention17 février 2005 4 déc. 2004 à 12:52
En effet, ça résout les principales erreurs, merci.
Mais il y en a encore 33 et ça concerne mes surcharges de l'opérateur <<. Il me reconnaît pas le mot friend, ostream ... il me dit que j'ai oublié des ;
plus_plus_fab
Messages postés232Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention 8 janvier 2005 4 déc. 2004 à 13:49
ton constructeur de copie garantit que l'objet "copié" est non modifiable. le constructeur de client ne garantit pas que ses 2 parametres soit non modifiable, or celui-ci est appelé par le constructeur de copie de client_entreprise ...
Le compilateur refuse a juste titre !