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

Traduction Penser en C++ Discussion :

Traduction du chapitre 5.2


Sujet :

Traduction Penser en C++

  1. #1
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut Traduction du chapitre 5.2
    Sujet dédié à la traduction et la relecture du chapitre 5.2

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    620
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 620
    Points : 453
    Points
    453
    Par défaut
    Je prends

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    620
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 620
    Points : 453
    Points
    453
    Par défaut
    Fini ! on met ça où ?

    Le C++ introduit trois nouveaux mots-clefs pour fixer les frontières/droits/limites (?) d'une structure : public, private et protected. Leur sens et leur usage sont remarquablement clairs. Ces spécificateurs d'accès sont utilisés seulement dans la déclaration d'une structure, et ils changent les frontières/droits/limites pour toutes les déclarations qui viennent après eux. Quand vous utilisez un tel spécificateur, il doit être suivi par deux points. public signifie que tous les membres qui suivent cette déclaration sont disponibles à tout le monde. Les membres public sont comme les membre struct. Par exemple, les déclaration de structures suivantes sont équivalentes :

    //: C05ublic.cpp
    // Public est exactement comme struct en C

    struct A {
    int i;
    char j;
    float f;
    void func();
    };

    void A::func() {}

    struct B {
    public:
    int i;
    char j;
    float f;
    void func();
    };

    void B::func() {}

    int main() {
    A a; B b;
    a.i = b.i = 1;
    a.j = b.j = 'c';
    a.f = b.f = 3.14159;
    a.func();
    b.func();
    } ///:~

    A l'inverse, le mot clef private signifie que personne ne peut accéder à ce membre sauf vous, le créateur de ce type, dans les fonctions membres de ce type. private est un lien entre vous et le programmeur client ; si quelqu'un essaye d'accéder à un membre private, il obtient une erreur de compilation (compile-time error). Dans la structure B dans l'exemple ci-dessus, vous pouvez avoir envie de rendre certaines portions de la représentation (c'est-à-dire, les données membres) cachée, accessibles uniquement par vous :

    //: C05rivate.cpp
    // Fixer les frontières

    struct B {
    private:
    char j;
    float f;
    public:
    int i;
    void func();
    };

    void B::func() {
    i = 0;
    j = '0';
    f = 0.0;
    };

    int main() {
    B b;
    b.i = 1; // OK, public
    //! b.j = '1'; // Illégal, private
    //! b.f = 1.0; // Illégal, private
    } ///:~

    Bien que func() puisse accéder à n'importe quel membre de B (car func() est un membre de B, lui garantissant ainsi automatiquement la permission), une fonction ordinaire globale comme main() ne le peut pas. Bien sûr, les fonctions membres d'autres structures ne le peuvent pas non plus. Seules, les fonctions qui sont clairement déclarées dans la déclaration de la structure (le "contrat") peuvent avoir accès aux membres privés.
    Il n'y a pas d'ordre requis pour les spécificateurs d'accès, et ils peuvent apparaître plus d'une fois. Ils affectent tous les membres déclarés après eux et avant le spécificateur suivant.

    protected
    Le dernier spécificateur d'accès est protected. protected agit comme private, avec une exception dont nous ne pouvons parler maintenant : les structures "hérités" (qui ne peuvent accéder aux membres private) peuvent accéder aux membres protected. Cela deviendra plus clair au chapitre 14 quand le concept d'héritage sera introduit. Pour le moment, considérez protected comme équivalent à private.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    620
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 620
    Points : 453
    Points
    453
    Par défaut avec le gabarit !
    Voici la version qui va bien...

  5. #5
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut

  6. #6
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Quelques corrections rapides, sans fichier joint:

    §2
    public signifie que tous les membres qui suivent cette déclaration sont disponibles à tout le monde. Les membres public sont comme les membresajouté d'un struct. Par exemple, les déclarationsajouté de structures suivantes sont équivalentes :
    Hehe... typiquement des erreurs d'attention
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  7. #7
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    check

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

Discussions similaires

  1. Traduction du chapitre 0.3
    Par Aurelien.Regat-Barrel dans le forum Traduction Penser en C++
    Réponses: 9
    Dernier message: 24/07/2007, 19h47
  2. Traduction du chapitre 0.4
    Par Aurelien.Regat-Barrel dans le forum Traduction Penser en C++
    Réponses: 12
    Dernier message: 24/07/2007, 19h46
  3. Traduction du chapitre 0.0
    Par Aurelien.Regat-Barrel dans le forum Traduction Penser en C++
    Réponses: 10
    Dernier message: 09/07/2007, 09h14
  4. Traduction du chapitre 0.2
    Par Aurelien.Regat-Barrel dans le forum Traduction Penser en C++
    Réponses: 2
    Dernier message: 18/12/2006, 12h54
  5. Traduction du chapitre 0.1
    Par Aurelien.Regat-Barrel dans le forum Traduction Penser en C++
    Réponses: 1
    Dernier message: 17/11/2006, 14h33

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