Exercice 128
Énoncé
a. Créer un patron de classes nommé pointcol, tel que chaque classe instanciée
permette de manipuler des points colorés (deux coordonnées et une couleur) pour
lesquels on puisse « choisir » à la fois le type des coordonnées et celui de la
couleur. On se limitera à deux fonctions membre : un constructeur possédant trois
arguments (sans valeur par défaut) et une fonction affiche affichant les
coordonnées et la couleur d’un « point coloré ».
b. Dans quelles conditions peut-on instancier une classe patron pointcol pour des
paramètres de type classe ?
a. Voici ce que pourrait être la définition du patron demandé, en prévoyant les fonctions
membre « en ligne » :
template class pointcol
{
T x, y ; // coordonnees
U coul ; // couleur
public :
pointcol (T abs, T ord, U cl)
{ x = abs ; y = ord ; coul = cl ;
}
void affiche ()
{ cout << "point colore - coordonnees " << x << " " << y
<< " couleur " << coul << "\n" ;
}
} ;
À titre indicatif, voici un exemple d’utilisation (on suppose que la définition
précédente figure dans pointcol.h) :
#include "pointcol.h"
#include
using namespace std ;
main()
{ pointcol p1 (5, 5, 2) ; p1.affiche () ;
pointcol p2 (4, 6, 2) ; p2.affiche () ;
pointcol p3 (1, 5, 2) ; p3.affiche () ;
}
b. Il suffit que le type classe en question ait convenablement surdéfini l’opérateur <<,
afin d’assurer convenablement l’affichage sur cout des informations correspondantes.
316
Précédent

- 317/398

Suivant