[C++]Incrémenter attribut d'une autre classe

Bonjour,

j'ai une question à propos des attributs en C++
J'ai une classe A qui a un attribut :
profit
J'ai une autre classe B qui doit incrémenter cet attribut. L'attribut profit doit rester dans la classe A.

Est-ce que quelqu'un pourrait m'indiquer comment faire cela et comment doit être initialiser profit

Merci

6 réponses

  1. Contributeur
    si profit est toujours un membre de la classe (donc static) il suffit de le mettre en public ou de déclarer B comme class amie.
    Ensuite dans B, il te suffit de faire : A::profit+=...;
    0
    1. Modérateur
      Il faut que l'attribut à modifier dans l'autre classe soit accessible
      - protected (ou public) si tu hérites de cette classe
      - friend (pour ta classe) ou public sinon

      http://www.allprog.com/CPlusPlus/Friend.htm
      http://tbrouard.univ-tours.fr/t/article.php3?id_article=62

      Bonne chance
      0
      1. Et dans le cas ou B n'hérite pas de A et que profit est un menbre de la classe, comment faire ?
        0
        1. Contributeur
          Ok, déjà c'est plus clair.
          comme B hérite de A, il faut que profit soit "public" ou "protected".
          Ensuite dans B il suffit de faire profit+=...;
          Pour initialiser profit :
          class A{static Type profit=...;}
          ou
          class A{static Type profit;...}
          Type A::profit=...;
          Voilà...
          0
          1. Oui, la classe B hérite de la classe A.
            profit est un membre de la classe
            0
            1. Contributeur
              y a un héritage entre A et B ? Sinon, il y a friend ou encore statci etc...
              Il faut nous en dire plus.
              profit est un membre de la classe ou de l'objet ?
              0