résolution de portée. Enfin, le constructeur de pointcol doit retransmettre au
constructeur de point les coordonnées qu’il aura reçues par ses deux premiers
arguments.
Voici ce que pourrait être notre classe pointcol (ici, toutes les fonctions membre, sauf
le constructeur, sont en ligne) :
/****** fichier pointcol.h :déclaration de pointcol ******/
#include "point.h"
#include
using namespace std ;
class pointcol : public point
{ int cl ;
public :
pointcol (float = 0.0, float = 0.0, int = 0) ;
void colore (int coul)
{ cl = coul ;
}
void affiche () // affiche doit appeler affiche de
{ point::affiche () ; // point pour les coordonnées
cout << " couleur : " << cl ; // mais elle a accès à la couleur
}
} ;
/****** définition du constructeur de pointcol *****/
#include "point.h"
#include "pointcol.h"
pointcol::pointcol (float abs, float ord, int coul) : point (abs, ord)
{ cl = coul ; // on pourrait aussi écrire colore (coul) ;
}
Notez bien que l’on précise le constructeur de point devant être appelé par celui de
pointcol, au niveau du constructeur de pointcol, et non de sa déclaration.
b. La déclaration pointcol (2.5, 3.25, 5) entraîne la création d’un emplacement pour un
objet de type pointcol, lequel est initialisé par appel, successivement :
du constructeur de point, qui reçoit en argument les valeurs 2.5 et 3.25 (comme prévu
dans l’en-tête du constructeur de pointcol)þ;
du constructeur de pointcol.
248
Précédent

- 249/398

Suivant