Exercice 103
Énoncé
On dispose d’un fichier point.h contenant la déclaration suivante de la classe point :
#include
using namespace std ;
class point
{ float x, y ;
public :
point (float abs=0.0, float ord=0.0)
{ x = abs ; y = ord ;
}
void affiche ()
{ cout << "Coordonnées : " << x << " " << y << "\n" ;
}
void deplace (float dx, float dy)
{ x = x + dx ; y = y + dy ;
}
} ;
a. Créer une classe pointcol, dérivée de point, comportant :
• un membre donnée supplémentaire cl, de type int, contenant la « couleur » d’un
point ;
• les fonctions membre suivantes :
affiche (redéfinie), qui affiche les coordonnées et la couleur d’un
objet de type pointcol ;
colore (int couleur), qui permet de définir la couleur d’un objet de
type pointcol,
un constructeur permettant de définir la couleur et les coordonnées (on ne le définira
pas en ligne).
b. Que fera alors précisément cette instruction :
pointcol (2.5, 3.25, 5) ;
a. La fonction colore ne pose aucun problème particulier puisqu’elle agit uniquement sur
un membre donnée propre à pointcool. En ce qui concerne affiche, il est nécessaire
qu’elle puisse afficher les valeurs des membres x et y, hérités de point. Comme ces
membres sont privés (et non protégés), il n’est pas possible que la nouvelle méthode
affiche de pointcol accède à eux directement. Elle doit donc obligatoirement faire
appel à la méthode affiche du type point ; il suffit, pour cela, d’utiliser l’opérateur de
247
Énoncé
On dispose d’un fichier point.h contenant la déclaration suivante de la classe point :
#include
using namespace std ;
class point
{ float x, y ;
public :
point (float abs=0.0, float ord=0.0)
{ x = abs ; y = ord ;
}
void affiche ()
{ cout << "Coordonnées : " << x << " " << y << "\n" ;
}
void deplace (float dx, float dy)
{ x = x + dx ; y = y + dy ;
}
} ;
a. Créer une classe pointcol, dérivée de point, comportant :
• un membre donnée supplémentaire cl, de type int, contenant la « couleur » d’un
point ;
• les fonctions membre suivantes :
affiche (redéfinie), qui affiche les coordonnées et la couleur d’un
objet de type pointcol ;
colore (int couleur), qui permet de définir la couleur d’un objet de
type pointcol,
un constructeur permettant de définir la couleur et les coordonnées (on ne le définira
pas en ligne).
b. Que fera alors précisément cette instruction :
pointcol (2.5, 3.25, 5) ;
a. La fonction colore ne pose aucun problème particulier puisqu’elle agit uniquement sur
un membre donnée propre à pointcool. En ce qui concerne affiche, il est nécessaire
qu’elle puisse afficher les valeurs des membres x et y, hérités de point. Comme ces
membres sont privés (et non protégés), il n’est pas possible que la nouvelle méthode
affiche de pointcol accède à eux directement. Elle doit donc obligatoirement faire
appel à la méthode affiche du type point ; il suffit, pour cela, d’utiliser l’opérateur de
247
