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 :

Es ce possible de faire des inner class en C++?


Sujet :

C++

  1. #1
    Membre averti
    Inscrit en
    Avril 2002
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 16
    Par défaut Es ce possible de faire des inner class en C++?
    bonjour,
    je fait un peu de java et la je dois faire un petit truc en cpp.
    J'aimerai savoir s'il est possible de faire une classe imbriqué en c++?
    Si oui comment parceque tout ce que j'ai essayé a pas l'air de marcher.

    Merci

  2. #2
    mat.M
    Invité(e)
    Par défaut
    ????
    A priori oui on peut parfaitement déclarer une classe à l'intérieur d'une autre

  3. #3
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Montres-nous ce que tu as fait, ce sera plus facile de t'aider.

  4. #4
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 292
    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 292
    Par défaut
    Si je me souviens bien il y a une différence entre les deux types d'inner class.
    En C++, il n'y a d'accès privilégié aux membres privés de la classe englobante, ni de lien privilégié entre une instance de l'inner class avec une instance de la outer class.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Citation Envoyé par Luc Hermitte
    En C++, il n'y a d'accès privilégié aux membres privés de la classe englobante, ni de lien privilégié entre une instance de l'inner class avec une instance de la outer class
    Pourtant ce code compile avec VC7.1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    struct Outer
    {
        struct Inner
        {
            void F(Outer& O)
            {
                O.Private = 24;
            }
        };
     
    private :
     
        int Private;
    };
     
    int main()
    {
        Outer Out;
        Outer::Inner In;
        In.F(Out);
     
        return 0;
    }
    Il serait interessant de savoir ce qu'en dit la norme, car il est vrai que ce genre de comportement diffère beaucoup d'un compilo à l'autre.

  6. #6
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 292
    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 292
    Par défaut
    Au 1er alinéa du § 11.8 je lis:
    Citation Envoyé par ISOIEC14882-1998
    The members of a nested class (*) have no special access to members of an enclosing class, nor to classes or functions that have granted frienship to an enclosing class; the usual access rules (clause 11) shall be obeyed. The members of an enclosing class have no special access to members of a nested class; the usual access rules (clause 11) shall be obeyed.
    Bref, VC++ 7.1 nous épargne un friend.

    (*) nested class est le terme C++ pour les classes imbriquées
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. Est il possible de faire des border raduis avec Internet Explorer
    Par Alpha14 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 23/02/2010, 17h02
  2. Réponses: 3
    Dernier message: 22/07/2009, 12h04
  3. Est-il possible de faire des classes autoinstanciées ?
    Par All Jinx dans le forum Débuter
    Réponses: 7
    Dernier message: 22/08/2008, 17h36
  4. Réponses: 1
    Dernier message: 11/09/2007, 16h59

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