[question stupide] geters/seters [résolu, merci]

geters/seters [résolu, merci] [question stupide] - C++ - Programmation

Marsh Posté le 12-09-2003 à 11:15:20    

salut tout le monde,
 
me voilà plongé dans le merveilleux monde du c++!  :sarcastic:  
 
bon une question stupide : j'ai créé une classe (avec header et implémentation ad hoc) et je me demandais où je devais mettre l'implémentation des getters/setters. logiquement, je les ai mises dans le fichier cpp, mais je ne parvens pas à compiler lorsque je les mets.
 
exemple de code :

Code :
  1. string maClasse::att1() {
  2.   return _att1;
  3. }


 
et là il me sort une erreur de syntaxe avant le ::
 
normal ou pas?
 
merci pour votre aide!


Message édité par arghbis le 12-09-2003 à 11:32:25
Reply

Marsh Posté le 12-09-2003 à 11:15:20   

Reply

Marsh Posté le 12-09-2003 à 11:21:13    

Bon déjà retourner un objet c mal, on retourne des références c mieux (sauf cas très particuliers).
 
Ensuite c quoi l'erreur? C quoi le reste du code? Désolé mais on est pas devin ici  [:spamafote]


---------------
Le Tyran
Reply

Marsh Posté le 12-09-2003 à 11:24:41    

LetoII a écrit :

Bon déjà retourner un objet c mal, on retourne des références c mieux (sauf cas très particuliers).

c'est que tu commences à être bien toi

Reply

Marsh Posté le 12-09-2003 à 11:25:40    

ouaip, bon là ce n'est qu'un exemple (pour ta remaque, il vaut donc mieux que je fasse return &_att1 ?).
 
je pense avoir trouvé l'erreur : j'avais des typdef dans mon header et je ne les ai pas répéter dans le cpp. maintenant ça roule!  
 
merci!

Reply

Marsh Posté le 12-09-2003 à 11:29:00    

Taz a écrit :

c'est que tu commences à être bien toi


 
C bien de temps en temps d'indiquer au gens les bonne pratique, et ce dans la bonne humeur ;)
 

arghbis a écrit :

ouaip, bon là ce n'est qu'un exemple (pour ta remaque, il vaut donc mieux que je fasse return &_att1 ?).


 
 :non:  
 

Code :
  1. string &maClasse::att1() {
  2. return _att1;
  3. }
  4. const string &maClasse::att1() const{
  5. return _att1;
  6. }


 
Edit: return &_att1; renvoie l'adresse de la variable.
 

arghbis a écrit :


je pense avoir trouvé l'erreur : j'avais des typdef dans mon header et je ne les ai pas répéter dans le cpp. maintenant ça roule!  
 
merci!


 
 :heink:


Message édité par LetoII le 12-09-2003 à 11:31:05

---------------
Le Tyran
Reply

Marsh Posté le 12-09-2003 à 11:29:09    

arghbis a écrit :

ouaip, bon là ce n'est qu'un exemple (pour ta remaque, il vaut donc mieux que je fasse return &_att1 ?).
 
je pense avoir trouvé l'erreur : j'avais des typdef dans mon header et je ne les ai pas répéter dans le cpp. maintenant ça roule!  
 
merci!

tu sais ce qu'est une référence?

Reply

Marsh Posté le 12-09-2003 à 11:32:06    

je pense en avoir compris le principe oui, mais je progresse petit à petit. je dois faire du c++ alors que je ne connais dékà pas le c.  
donc c pas facile (sans jeu de mot nul). Mais je vous remercie pour vos conseils, c'est comme ça qu'on progresse!  :jap:

Reply

Marsh Posté le 12-09-2003 à 11:56:29    

arghbis a écrit :

je dois faire du c++ alors que je ne connais dékà pas le c.  


 
ça évite justement de mélanger les deux, t'as une chance de faire du vrai c++ et de ne pas te faire tuer par Taz, profites-en :D


Message édité par antp le 12-09-2003 à 11:56:45

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-09-2003 à 12:55:55    

bon je viens de comprendre mon erreur, mais vraiment le pourquoi du comment!  
 
en fait, dans mon header, j'ai des typedef genre typedef list<string> strList;
 
dans mon .cpp, j'ai fait des getters setters du genre strList &getMachin (){ return _machin;}.
 
il fallait en fait rajouter le machin bidule de portée :
maClasse::strList &getMachin(){};
 
merci pour vos conseils de prog!
 

Reply

Marsh Posté le 12-09-2003 à 13:00:32    

Code :
  1. maClasse::strList &getMachin(){};

qui provoque plusieurs erreurs de compilation sur tous les compilateurs au monde

Reply

Marsh Posté le 12-09-2003 à 13:00:32   

Reply

Marsh Posté le 12-09-2003 à 13:09:33    

rohlalala! tout ça paske j'ai eu la flemme de réécrire le return!
 
 :whistle:
 
--edit--  
ah non effectivement j'ai oublié un truc!!  
 
maClasse::strList &maClasse::returnMachin (){return _machin;}


Message édité par arghbis le 12-09-2003 à 13:11:17
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed