-
10
pages
-
Français
-
Documents
Description
CHAPITRE 17 Classes génériquesLe langage C++ 269einev Télécommunications mjn 17.1 MotivationLes classes génériques ne font pas partie du langage C++, mais se révèlent très pratiquespour implémenter des mécanismes de base réutilisables par un grand nombre. Utilisé en con-jonction avec la construction template de C++, les classes génériques permettent d'allier uncode optimal du point de vue de la taille et de la réutilisation à une écriture claire et propre ducode. L’utilisation de templates permet en soi d’écrire des classes génériques, mais présenteun inconvénient : pour chaque instanciation de template, le code implémentant le templatedoit être entièrement régénéré. Si dans notre exemple de tableau de longueur variable, cetterégénération ne conduit pas à une multiplication excessive de la quantité de code, ceci peuts’avérer gênant dans le cas de template complexes. Or, nous l’avons vu dans l’exemple pré-cédent, le code généré par les différentes instantiations de template est fondamentalementidentique, à quelques rares exceptions près.L’idée de classes génériques est d’écrire une classe indépendante du type d’objet mani-pulé. Pour ce faire, on dispose d’un outil en C++, qui sont les pointeurs sur des objets de typevoid (void*) ou pointeurs génériques. Nous avons déjà parlé de ce type de pointeur particu-lier; rappelons que le pointeur void* peut pointer sur un objet de n’importe quel type, maisqu’en revanche, il n’est pas possible de déréférencer ...
-
Publié par
-
Langue
Français