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 :

[C++] - Nested classes?


Sujet :

C++

  1. #1
    Membre �clair� Avatar de vdumont
    Profil pro
    �tudiant
    Inscrit en
    F�vrier 2006
    Messages
    510
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : Canada

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 510
    Par d�faut [C++] - Nested classes?
    Bonjour, je suis en train de lire un livre sur la SL et je viens d'aper�evoir quelque chose que je n'avais jamais vu auparavant : les Nested Template Classes

    Extrait:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    template <class T>
    class MyClass {
       ...
       template <class T2>
       class NestedClass;
       ...
    };
    Cependant dans le bouquin il ne s'agit que d'un exemple qui montre que les "Nested Classes" peuvent aussi �tre des templates.

    Quelqu'un pourrait m'�clairer � quoi pourrait servir de d�clarer une classe dans une classe? Quel genre d'utilisation peut-on faire avec une classe de ce type? Merci!

  2. #2
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    A cr�er des it�rateurs dans les conteneurs de la STL par exemple.

  3. #3
    Membre �clair� Avatar de vdumont
    Profil pro
    �tudiant
    Inscrit en
    F�vrier 2006
    Messages
    510
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : Canada

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 510
    Par d�faut
    Aurais-tu un exemple ou une r�f�rence sur cette utilisation? Merci!

  4. #4
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    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 296
    Par d�faut
    a- cacher ce qui n'a pas � �tre expos�
    a.bis- pimpl
    b- rajouter des qualifications/port�es
    b.bis- le genre de trucs qui peut se voir en m�ta-prog
    b.ter- mixin layers.
    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
    Membre chevronn�

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par d�faut
    Les nested classes peuvent �tre utiles pour d�finir des objets locaux � la classe sans montrer "� tout le monde" leur existence (quand elle n'a qu'un int�r�t pour l'impl�mentation).

    C'est plus facile � illustrer avec une structure. Perso j'ai eu un cas o� je devais travailler avec une cl� compos�e de deux pointeurs que je stocke dans un map<>. Ca me permet de faire ceci:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    class myClass {
      private:
        struct key { void* foo; void *bar; };
        map<key,int> listeDesValeurs;
    }
    Comme �a, j'utilise la cl� en interne seulement pour r�cup�rer les valeurs associ�es � chaque pair de pointeur... Apr�s, pourquoi ne pas utiliser une cl� plus intellignente: une classe!

    J'esp�re que �a illustre plus clairement le cas.

  6. #6
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Citation Envoy� par vdumont
    Aurais-tu un exemple ou une r�f�rence sur cette utilisation? Merci!
    std::list et std::list::iterator par exemple.

    Ta question porte sur les nested class en g�n�ral, ou les nested class template en particulier ?

Discussions similaires

  1. Templates, Nested class & friend functon
    Par Benlev dans le forum Langage
    R�ponses: 13
    Dernier message: 27/11/2009, 04h04
  2. Nested class: acc�der � son parent
    Par Chii-san dans le forum VB.NET
    R�ponses: 5
    Dernier message: 06/06/2007, 13h52
  3. Question de Nested Classes
    Par CaptnB dans le forum Langage
    R�ponses: 2
    Dernier message: 14/07/2006, 23h06

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