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

max -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
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. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    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
  2. max
     
    Oui, la classe B hérite de la classe A.
    profit est un membre de la classe
    0
  3. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    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
  4. max
     
    Et dans le cas ou B n'hérite pas de A et que profit est un menbre de la classe, comment faire ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    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
  7. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    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