Pbm de classe

Résolu
adeline11 Messages postés 58 Statut Membre -  
adeline11 Messages postés 58 Statut Membre -
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 ^^
Configuration: Linux
Firefox 3.0.5

3 réponses

  1. Xil Messages postés 351 Statut Membre 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
  2. adeline11 Messages postés 58 Statut Membre 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
    1. Xil Messages postés 351 Statut Membre 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
  3. adeline11 Messages postés 58 Statut Membre 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