Pbm de classe

Résolu
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

  • Votes
  • Date
  • Date décroissante
  1. 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 ^^
    1. 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
      1. Il faut donc déclarer my_nid comme étant une instance de Fourmilière.

        Fourmiliere my_nid;
        my_nid = new Fourmiliere();
        my_nid.toString();
    2. 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