-
4
pages
-
Français
-
Documents
Description
CHAPITRE 13 Classes imbriquéesLe langage C++ 213einev Télécommunications mjn 13.1 MotivationA partir de la version 3.0 de la spécification du langage C++, il est possible d’utiliserdes types imbriqués. Cette fonctionnalité permet de cacher des détails d'implémentation en lesrendant purement locaux à une classe donnée, comme dans l'exemple suivant :class LinkedList{private :struct ListElement{void* data;ListElement *next, *previous;};LinkedList&operator=(LinkedList& l);LinkedList(LinkedList&);ListElement *head, *tail;public :LinkedList();~LinkedList();void addToList(const void *newData);....};L'élément de la liste n'est pas accessible en dehors des méthodes de la classe Linke-dList, puisque la définition du type se fait dans le contexte de la classe uniquement. L'élé-ment englobé, lui, n'a qu'une visibilité très limitée:int x, y;class outer{public :int x;static int staticVar;class inner{void someFunc(int anInt){x = anInt; // Erreur, outer::x n'est pas accessible.// outer::x ne correspond pas à une instancestaticVar = anInt; // staticVar est statique, ok::x = anInt; // Ok, variable globaley = anInt;}void anotherFunc(outer *outerPtr, int anInt){outerPtr->x = anInt; // Ok, accès à un membre de la // classe englobante par un// pointeur.}}};Un autre avantage de la définition de classes imbriquées réside dans le fait que l'identi-214 Le langage C++einev Télécommunications mjnficateur de classe, étant local au contexte d'une ...
-
Publié par
-
Langue
Français