IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Private - Protected


Sujet :

C++

  1. #1
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 207
    Points : 133
    Points
    133
    Par défaut Private - Protected
    Bonjour à tous !!

    J'ai un problème d'ordre théorique. J'aimerai savoir qu'elle est la différence entre des membre de classe :
    Privé et Protégé (private et protected).
    J'ai regardé la FAQ, mais je ne trouve pas très bien expliqué...
    et quelque essai on confirmer mon incompréhension.

    d'avance merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 44
    Points : 32
    Points
    32
    Par défaut
    Pour faire super simple et t'éviter des maux de crânes :

    Protected, c'est comme private pour tout ce qui est extérieur à la classe et à ses sous-classes, et comme public pour tout ce qui est à l'intérieur de la classe ou de ses sous-classes.

    La différence vient donc des sous-classes. Les machins protected sont visibles par les sous classes, alors que les machins private ne le sont pas.

    Voilou

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    Les variables "private" sont des variables qui ne peuvent être accédées que de l'intérieur de la classe.

    Les variables "protected" sont des variables privées qui peuvent toutefois être accédées par les classes dérivées.

  4. #4
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 207
    Points : 133
    Points
    133
    Par défaut
    Oui mais si je crée une classe et que je crée un autre classe qui herite de la première classe. Celle-ci aura aussi les membres privés...

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Oui mais si je crée une classe et que je crée un autre classe qui herite de la première classe. Celle-ci aura aussi les membres privés...
    Justement non. Enfin elle en sera composée, mais n'y aura pas accès.

    Et attention aussi : suivant la nature de l'héritage (public/protected/private), l'accés aux membres changera. Par exemple si tu fais un héritage protected, les membres public deviennent protected dans la classe dérivée.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Points : 60
    Points
    60
    Par défaut
    Salut,

    Pour avoir accès à tes variables privées à partir d'une sous-classe jusqu'à une super classe, tu dois créer des accesseurs, qui te permetrons d'y avoir accées par appel de la methode crée.

  7. #7
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Tout ce qui a été dit concerne la syntaxe. Côté idiomes ... cela va dépendre de ce que tu voudras faire.

    Parfois les descendants d'une classe devront pouvoir accéder à certains membres (fonctions (pas d'accesseur possible pour une fonction) ou attributs (mettre des accesseurs pour chaque membre n'a aucun sens)) qui relèvent de l'implémentation dans la classe mère. Là, il peut être intéressant de définir ces membres comme protégés.
    Mais ce n'est pas forcément nécessaire car suivant le membre, donner un accès direct à son état romp toute encapsulation et met en péril son intégrité, vu que les descendants pourraient faire n'importe quoi avec.

    Très important, de même qu'il ne faut pas définir des accesseurs (& mutateurs) pour chaque attribut, il ne faut pas nécessairement les déclarer protégés. C'est le design qui doit primer ; et en fonction de ce que l'on veut réaliser, on va utiliser tel ou tel aspect de la syntaxe du C++. En d'autre termes : on ne pisse pas des classes en se disant "je verrais plus tard comment je la dériverai ; en attendant je mets des accesseurs pour chaque attribut qui sera d'aileurs protégé". On réfléchit d'abord.
    (Je sais que c'est bateau ce que je dis, mais il n'est pas rare de voir des bateau qui ont de sacrées voies d'eau)

  8. #8
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Points : 638
    Points
    638
    Par défaut
    Comme c'est court, j'ai repris texto la FAQ

    Citation Envoyé par FAQ de LFE
    Un membre déclaré private dans une classe ne peut être accédé que par
    les autres membres de cette même classe.

    Un membre déclaré protected dans une classe ne peut être accédé que
    par les autres membres de cette même classe ainsi que par les membres
    des classes dérivées.

    Un membre déclaré public dans une classe peut être accédé par toutes
    les autres classes et fonctions.
    qu'est-ce qui est incompréhensible pour qq qui a 346 messages?

  9. #9
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Citation Envoyé par HRS
    qu'est-ce qui est incompréhensible pour qq qui a 346 messages?
    Qu'il n'ait pas lu la FAQ ?

  10. #10
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Citation Envoyé par Trap D
    Qu'il n'ait pas lu la FAQ ?
    Citation Envoyé par Seboubou86
    J'ai regardé la FAQ, mais je ne trouve pas très bien expliqué...

  11. #11
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 207
    Points : 133
    Points
    133
    Par défaut
    [hs]
    Ouais 346 message Ok... mais cependant je suis blond donc sa change les

    donnes...
    [/hs]

    Merci pour toute ces réponses...

    En fait j'ai compris... ce qui est private ne s'hérite pas...

    Mais lorsque je testait, je testais avec BCB 6.0 en utilisant l'éditeur de code pour voir les accès... mais c'est pas très fiable...


    Merci encore pour toute ces réponses :-)

  12. #12
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Points : 325
    Points
    325
    Par défaut
    Citation Envoyé par Seboubou86
    [hs]
    Ouais 346 message Ok... mais cependant je suis blond donc sa change les

    donnes...
    [/hs]

    ...

    En fait j'ai compris... ce qui est private ne s'hérite pas...

    ...
    [hs]

    C'est dur la blonditude...

    [/hs]

    Si on en herite comme le reste... mais c'est enfermé dans un coffre en banque dont tu n'as pas la clef.... ....mais c'est bien à toi....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 15/01/2011, 08h26
  2. Private, Protected & Public (les 3P)
    Par birt1976 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 10/10/2008, 14h05
  3. [reflexion] membre private & protected
    Par ZaaN dans le forum C#
    Réponses: 2
    Dernier message: 28/03/2008, 15h21
  4. differences static final - private protected
    Par fantomas261 dans le forum Langage
    Réponses: 2
    Dernier message: 27/05/2007, 12h24
  5. Public Private Protected
    Par Sabrina_of_darkness dans le forum Langage
    Réponses: 1
    Dernier message: 25/03/2006, 22h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo