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 :

classe interne, connaitre son objet conteneur


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Ekinoks
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    687
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 687
    Par défaut classe interne, connaitre son objet conteneur
    Salut !

    Seriez vous si il est possible qu'une classe interne puissent accéder au donnée membre de la classe conteneur sans avoir besoin de passer de pointeur ?

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    struct A
    {
        int val;
     
        struct B
        {
            B()
            {
                val; // existe t'il un moyen d'avoir accès au donnée membre de A sans faire passer de "A*" ?
            }
        }
    };
    Je sais qu'il est très facile de demander un "A*" dans le constructeur de B, mais cela oblige d'avoir un argument règlementaire dans le constructeur, et dans certain cas, c'est un peu gênant pour la lisibilité. :^/

    Vous avez une idée de si c'est possible ?

    Merci pour votre aide.

  2. #2
    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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Le fait que B soit déclarée dans A change juste sa portée, mais ça ne signifie pas qu'une instance de B sera forcément liée de quelque façon que ce soit à une instance de A. Si tu veux qu'un A possède un B ou qu'un B connaisse un A, il faut le faire explicitement.

  3. #3
    Membre éclairé Avatar de Ekinoks
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    687
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 687
    Par défaut
    Citation Envoyé par Laurent Gomila Voir le message
    Le fait que B soit déclarée dans A change juste sa portée, mais ça ne signifie pas qu'une instance de B sera forcément liée de quelque façon que ce soit à une instance de A. Si tu veux qu'un A possède un B ou qu'un B connaisse un A, il faut le faire explicitement.
    Mouarf, ok, c'est bien ce que je craignais

    Merci pour ces précisions.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/04/2011, 08h31
  2. référence à une classe externe dans son interne
    Par Virgile le chat dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2009, 23h58
  3. Instancier une classe sans connaitre son nom
    Par Molkobain dans le forum Langage
    Réponses: 8
    Dernier message: 16/02/2009, 14h49
  4. [Débutant][Conception] Erreur avec une classe interne
    Par Devil Redneck dans le forum Général Java
    Réponses: 5
    Dernier message: 11/06/2004, 15h45
  5. [Thread] Erreur dans une classe interne
    Par totof2308 dans le forum Général Java
    Réponses: 5
    Dernier message: 03/06/2004, 08h15

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