TP #2 de C++ : agrégation et héritage
Exercice n°1 : généralisation de classes
A partir des classes NombreComplexeCartesien et
NombreComplexePolaire, définir une classe abstraite
NombreComplexe dont dériveront
NombreComplexeCartesien et NombreComplexePolaire. On
veillera à factoriser le code autant que possible dans la classe
mère.
Solution
Exercice n°2 : implémentation et spécialisation
de la classe ObjetGraphique
Le but est d'implémenter le schéma de classes
suivant :
Quatre points importants à surveiller :
- Rappel : la méthode pointDeBase renvoie une
référence constante vers son point pour éviter que
l'appellant ne puisse modifier celui-ci !
- Pour les affichages, l'on utilisera du code qui envoie sur
l'écran les caractéristiques de l'objet affiché.
L'effacement enverra seulement un message du genre "Objet
effacé". Vous devrez utiliser les primitives du fichier
<iostream>.
- La méthode afficher d'ObjetGraphique est
abstraite. Toutefois, l'une des particularités du C++ est de pouvoir
placer du code dans une méthode virtuelle pure afin de pouvoir
l'appeller dans les redéfinitions des classes concrètes. Profitez
de cette possibilité pour factoriser le plus possible le code
d'affichage !
- Le destructeur de ObjetGraphique est virtuel, ce qui
permet de le redéfinir dans chacune des classes filles et donc de
pouvoir appliquer delete à tous les membres d'un tableau de
pointeurs sur ObjetGraphique sans se poser de questions.
Solution