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 :

Créer une classe dans une classe


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 433
    Par défaut Créer une classe dans une classe
    Bonjour,

    Je voudrais créer une classe imbriquée dans une autre, je m'explique sur un exemple; pour la classe std::list, on peut déclarer un itérateur de la manière suivante:

    std::list::iterator UnIterateur;

    Comme si iterator est une classe interne à la classe liste. Et grâce à cela, je peux utiliser la classe std::list dans un programme et créer à coté une classe iterator sans qu'il n'y ai de conflit de nom.

    Merci pour vos futures réponses

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 94
    Par défaut
    Et c'est quoi ton problème?

  3. #3
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class Classe
    {
        class Imbriquee
        {
     
        };
    };

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 433
    Par défaut
    Erf ok je pensais pas que c'étais possible, je l'ai vu dans aucun cours...
    Bon bah heu désolé pour ce ropic un peu inutile au final


  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 433
    Par défaut
    Bah bah finalement ca n'a pas l'air si simple et évident que ça !
    Pour faire des tests avec les réponses que vous m'avez apporté, j'ai commencé à faire une classe Liste à titre de test. J'ai commencé de la manière suivante:

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    #ifndef LISTE_H
    #define LISTE_H
     
     
    	template<class T>
    	class Liste {
     
    		public:
     
    			class Cellule {
     
    				public:
    					T info;
     
    					// La ligne suivante génère une erreur
    					Liste<T>::Cellule *suivante;
     
    			};
     
     
    			Liste();
    			~Liste();
     
    	};
     
     
    	template<class T>
    	Liste<T> :: Liste() {
     
    	}
     
     
    	template<class T>
    	Liste<T> :: ~Liste() {
     
    	}
     
     
    #endif
    La ligne comportant Liste<T>::Cellule me génère une erreur (de syntaxe).
    Qu'ai-je fais faux ?

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    En règle générale il faudrait mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typename Liste<T>::Cellule *suivante;
    pour indiquer au compilateur que Liste<T>::Cellule est un type.

    Mais ici Liste<T>:: n'est pas obligatoire vu qu'on est à l'intérieur de la classe Liste. Donc jute

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  2. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  3. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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