Pbm de classe

Résolu
adeline11 Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   -  
adeline11 Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Voilà j'ai une classe A qui possède une méthode toString qui affiche ses attributs et j'ai également une classe B avec sa méthode toString qui fait la mm chose. Et je voudrais pouvoir afficher les attributs de la classe A dans la classe B. Je dois donc appeller la méthode toString de la classe A dans celle de la classe B. Seulement je ne sais pas du tout comment faire. Merci d'avance pour votre aide
ps: j'utilise du c++ et je débute ^^

3 réponses

Xil Messages postés 350 Date d'inscription   Statut Membre Dernière intervention   257
 
Bonjour,

Y a-t-il un héritage entre A et B ?

Si oui et si A est parent de B, dans la méthode B.toString, tu peux appeler la méthode parent.toString()
Si non,

A.toString est-elle statique ?
Si oui, tu peux appeler A::toString()
Si non,

Il faut probablement instancier un objet de la classe A dans la méthode B.toString().


Après pour la syntaxe, il faudra demander à quelqu'un qui a déjà fait du C++, ce n'est pas mon cas ^^
0
adeline11 Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   34
 
Déjà non il n'y a pas d'héritage entre ces 2 classe donc j'ai obté pour la 2ème solution mais elle ne fonctionne pas.
Voila ma ligne de code:
" ostr <<my_position.toString()<<" Nid: "<<Fourmiliere::my_nid.toString();"

et voilà ce que me retourne le compilateur:
"fourmi.cc: In member function «virtual std::string Fourmi::toString()»:
fourmi.cc:40: erreur: «my_nid» is not a member of «Fourmiliere»"

en gros d'après ce que j'ai compris, il considère my_nid comme un attribut de fourmilere alors que moi ce que je veux lui dire c'est que my_nid EST un fourmiliere
0
Xil Messages postés 350 Date d'inscription   Statut Membre Dernière intervention   257
 
Il faut donc déclarer my_nid comme étant une instance de Fourmilière.

Fourmiliere my_nid;
my_nid = new Fourmiliere();
my_nid.toString();
0
adeline11 Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   34
 
j'ai trouvé la solution. Ne me demande pas comment j'ai fait parce que c'était au pif^^
voilà la ligne a écrire:
"" ostr <<my_position.toString()<<" Nid: "<<(*my_nid).toString();"
Merci beaucoup pour ton aide et ta patience :p
0