Exercice 63
Énoncé
Réaliser une classe point, analogue à la précédente, mais ne comportant pas de
fonction affiche. Pour respecter le principe d’encapsulation des données, prévoir
deux fonctions membre publiques (nommées abscisse et ordonnee) fournissant en retour
l’abscisse et l’ordonnée d’un point. Adapter le petit programme d’essai précédent
pour qu’il fonctionne avec cette nouvelle classe.
Il suffit d’introduire deux nouvelles fonctions membre abscisse et ordonnee et de
supprimer la fonction affiche. La nouvelle déclaration de la classe est alors :
/* fichier POINT2.H */
/* déclaration de la classe point */
class point
{
float x, y ; // coordonnées (cartésiennes) du point
public :
point (float, float) ; // constructeur
void deplace (float, float) ; // déplacement
float abscisse () ; // abscisse du point
float ordonnee () ; // ordonnée du point
} ;
Voici sa nouvelle définition :
/* définition de la classe point */
#include "point2.h"
#include
using namespace std ;
point::point (float abs, float ord)
{ x = abs ; y = ord ;
}
void point::deplace (float dx, float dy)
{ x = x + dx ; y = + dy ;
}
float point::abscisse ()
{ return x ;
}
float point::ordonnee ()
{ return y ;
}
Et le nouveau programme d’essai :
/* exemple d'utilisation de la classe point */
#include "point2.h"
#include
using namespace std ;
main ()
136
Énoncé
Réaliser une classe point, analogue à la précédente, mais ne comportant pas de
fonction affiche. Pour respecter le principe d’encapsulation des données, prévoir
deux fonctions membre publiques (nommées abscisse et ordonnee) fournissant en retour
l’abscisse et l’ordonnée d’un point. Adapter le petit programme d’essai précédent
pour qu’il fonctionne avec cette nouvelle classe.
Il suffit d’introduire deux nouvelles fonctions membre abscisse et ordonnee et de
supprimer la fonction affiche. La nouvelle déclaration de la classe est alors :
/* fichier POINT2.H */
/* déclaration de la classe point */
class point
{
float x, y ; // coordonnées (cartésiennes) du point
public :
point (float, float) ; // constructeur
void deplace (float, float) ; // déplacement
float abscisse () ; // abscisse du point
float ordonnee () ; // ordonnée du point
} ;
Voici sa nouvelle définition :
/* définition de la classe point */
#include "point2.h"
#include
using namespace std ;
point::point (float abs, float ord)
{ x = abs ; y = ord ;
}
void point::deplace (float dx, float dy)
{ x = x + dx ; y = + dy ;
}
float point::abscisse ()
{ return x ;
}
float point::ordonnee ()
{ return y ;
}
Et le nouveau programme d’essai :
/* exemple d'utilisation de la classe point */
#include "point2.h"
#include
using namespace std ;
main ()
136
