Exercice 133
Énoncé
On dispose du même patron de classes que précédemment :
template class point
{
T x, y ; // coordonnees
public :
point (T abs, T ord) { x = abs ; y = ord ; }
void affiche ()
{ cout << "Coordonnees : " << x << " " << y << "\n" ;
}
} ;
a. Lui ajouter une version spécialisée de affiche pour le cas où T est le type caractère.
b. Comme dans la question a de l’exercice précédent, créer un patron de classes
pointcol permettant de manipuler des « points colorés » dans lesquels les
coordonnées et la couleur sont de même type. On redéfinira convenablement les
fonctions membre en réutilisant les fonctions membre de la classe de base et l’on
prévoira une version spécialisée de affiche de pointcol dans le cas du type
caractère.
a.
void point::affiche ()
{ cout << "Coordonnees : " << (int)x << " " << (int)y << "\n" ;
}
b.
template class pointcol : public point
{ T cl ;
public :
pointcol (T abs, T ord, T coul) : point (abs, ord)
{ cl = coul ;
}
void affiche ()
{ point::affiche () ;
cout << " couleur : " << cl << "\n" ;
}
} ;
void pointcol::affiche ()
{ point::affiche () ;
cout << " couleur : " << (int)cl << "\n" ;
}
325
Précédent

- 326/398

Suivant