| ||||||
Je vous en ai déjà un peu parler, pour les destructeurs du moins. Mais à quoi peuvent-elles bien servir. Elles permettent d'appeler des fonctions d'une classe fille à partir de la classe mère. Comment est-ce possible, et à quoi ça sert ? Nous allons faire un petit exemple, mais pour cela il va falloir ajouter une fonction à notre classe Crustace. Donc, dans le fichier crustace.h nous allons ajouter la fonction parler (la même que pour Crevette ou Langouste) en tant que fonction publique :
Et dans le fichier crustace.cpp :
Oui, bon, le Crustace parle anglais, mais c'est pour l'exemple. Modifions le fichier main.cpp :
Appelons CMake : cmake .. -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Configuring done -- Generating done Compilons avec make : make Scanning dependencies of target crustace [ 25%] Building CXX object CMakeFiles/crustace.dir/crustace.cpp.o [ 50%] Building CXX object CMakeFiles/crustace.dir/crevette.cpp.o [ 75%] Building CXX object CMakeFiles/crustace.dir/langouste.cpp.o [100%] Building CXX object CMakeFiles/crustace.dir/main.cpp.o Linking CXX executable crustace [100%] Built target crustace Exécutons le programme : ./crustace constructeur de Crustace constructeur de crevette je m’appelle Bond constructeur de Crustace constructeur de Langouste ich Aufruf Gurt haben Sie 23 Jahre. constructeur de Crustace My name is Harry destructeur de Crustace destructeur de Langouste destructeur de Crustace destructeur de crevette destructeur de Crustace Jusque là rien à changer. Mais continuons. Vous constaterez au passage que la dernière variable à avoir été créée est la première à être détruite. Mais c'est pas le tout, quand est-ce que ça change ? Regardons avec des pointeurs. | ||||||
|