Exercice 102
Énoncé
On dispose d’un fichier nommé point.h contenant la déclaration suivante de la classe
point :
class point
{ float x, y ;
public :
void initialise (float abs=0.0, float ord=0.0)
{ x = abs ; y = ord ;
}
void affiche ()
{ cout << "Point de coordonnées : " << x << " " << y << "\n" ;
}
float abs () { return x ; }
float ord () { return y ; }
} ;
a. Créer une classe pointb, dérivée de point comportant simplement une nouvelle
fonction membre nommée rho, fournissant la valeur du rayon vecteur (première
coordonnée polaire) d’un point.
b. Même question, en supposant que les membres x et y ont été déclarés protégés
(protected) dans point, et non plus privés.
c. Introduire un constructeur dans la classe pointb.
d. Quelles sont les fonctions membre utilisables pour un objet de type pointb ?
a. Il suffit de prévoir, dans la déclaration de pointb, une nouvelle fonction membre de
prototype :
float rho () ;
Toutefois, comme les membres x et y sont privés, ils restent privés pour les fonctions
membre de sa classe dérivée pointb ; ce qui signifie qu’au sein de la définition de rho,
il faut faire appel aux « fonctions d’accès » de point que sont abs et ord. Voici ce que
pourrait être notre classe pointb (ici, nous avons fourni rho sous forme d’une fonction
en ligne) :
#include "point.h" // pour la déclaration de la classe point
#include
class pointb : public point
{ public :
float rho ()
245
Précédent

- 246/398

Suivant