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 :

Contrôle d’accès a une variable


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Contrôle d’accès a une variable
    Bonjour,

    Je debute en C++ et j'ai une question.

    Je souhaite modifier un logiciel déjà établi codé en C++.

    Dans ce programme, une classe X contient une variable x, déclarée publique.

    Une centaine de classes accède déjà a cette variable. Cependant, j'ai une classe Y a l’intérieur de laquelle je veux interdire l’accès a cette variable x.

    Quelle est la meilleure méthode a employer pour réaliser ça? (sans declarer x en private, et sans modifier les autres classes)

    Merci d'avance

  2. #2
    En attente de confirmation mail

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Points : 3 311
    Points
    3 311
    Par défaut
    Pourquoi vouloir faire ca ?

    Si plein de classe utilise x c'est quel a certainement ca place en publique, pourquoi vouloir l'interdire ? Si tu ne veus pas l'utiliser dans ta classe Y alors ne l'utilise tout simplement pas !

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 083
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 083
    Points : 12 142
    Points
    12 142
    Par défaut
    Y héritera de manière privée de X.
    Mais bon, c'est un pis-aller.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Bonsoir,

    Citation Envoyé par bacelar Voir le message
    Y héritera de manière privée de X.
    Mais bon, c'est un pis-aller.
    Tu es sûr que cela empêchera d'accéder à x dans Y?
    Je me demande s'il ne faut pas faire hériter Y d'une classe intermédiaire qui hérite non publiquement de X?

  5. #5
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    Citation Envoyé par Aleph69 Voir le message
    Je me demande s'il ne faut pas faire hériter Y d'une classe intermédiaire qui hérite non publiquement de X?
    Pour ta question, cette gentille FAQ te donnera les idées plus claires :
    http://cpp.developpez.com/faq/cpp/?p...ASS_derivation

    Ensuite, sans savoir ce que sont ta classe X et ta classe Y, il me semble qu'il faut être devin pour te dire comment procéder car ceci dépend beaucoup des rôles de X et Y...

    Entre autre, souvent, ce genre de question cache plus le besoin de mettre une variable membre X dans la classe Y, de composer au lieu d'hériter...

  6. #6
    En attente de confirmation mail

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Points : 3 311
    Points
    3 311
    Par défaut
    @bretus: Je ne vois pas en quoi l'éhritage pourrait résoudre son problème, qui est à mon avis insolvable.

    Il veut interdire d'accéder à la variable x d'un objet X à l'intérieur des méthodes de Y, outre le fait que je ne vois pas à quoi ca pourrait servir, si il y a les include qu'il faut ca me semble totalement impossible.

  7. #7
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 477
    Points
    11 477
    Billets dans le blog
    11
    Par défaut
    Il y a bien une solution, mais elle est particulièrement moche (je n'oserais pas l'appliquer) : tu mets ta variable x en privé et tu mets toutes les classes qui peuvent y accéder en friend de la classe X
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  8. #8
    En attente de confirmation mail

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Points : 3 311
    Points
    3 311
    Par défaut
    Heureusement qu'il a dit explicitement sans déclarer x private ...

  9. #9
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 477
    Points
    11 477
    Billets dans le blog
    11
    Par défaut
    il a dit ça parce qu'elle est accédée par une centaine de classes (j'ai supposé) ... qu'il peut donc toutes mettre en friend
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/05/2007, 16h18
  2. Adresser un contrôle par une variable
    Par zedude33 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 28/11/2006, 23h23
  3. Réponses: 5
    Dernier message: 23/11/2006, 13h55
  4. Réponses: 7
    Dernier message: 16/06/2006, 16h31
  5. [c++] contrôle du type d'une variable
    Par TERRIBLE dans le forum C++
    Réponses: 2
    Dernier message: 10/04/2006, 20h50

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