Exercice 81
Énoncé
Soit la classe point suivante :
class point
{ int x, y ;
public :
point (int abs=0, int ord=0)
{ x = abs ; y = ord ;
}
} ;
Écrire une fonction indépendante affiche, amie de la classe point, permettant
d’afficher les coordonnées d’un point. On fournira séparément un fichier source
contenant la nouvelle déclaration (définition) de point et un fichier source contenant
la définition de la fonction affiche. Écrire un petit programme (main) qui crée un point
de classe automatique et un point de classe dynamique et qui en affiche les
coordonnées.
Nous devons donc réaliser une fonction indépendante, nommée affiche, amie de la
classe point. Une telle fonction, contrairement à une fonction membre, ne reçoit plus
d’argument implicite ; affiche devra donc recevoir un argument de type point. Son
prototype sera donc de la forme :
void affiche (point) ;
si l’on souhaite transmettre un point par valeur, ou de la forme :
void affiche (point &) ;
si l’on souhaite transmettre un point par référence. Ici, nous choisirons cette dernière
possibilité et, comme affiche n’a aucune raison de modifier les valeurs du point reçu,
nous le protégerons à l’aide du qualificatif const :
void affiche (const point &) ;
Le qualificatif const permet d’appliquer la fonction affiche à un objet constant. Mais elle
pourra également être appliquée à une expression de type point, voire à une expression
d’un type susceptible d’être converti implicitement en un point (voir le chapitre relatif
188
Énoncé
Soit la classe point suivante :
class point
{ int x, y ;
public :
point (int abs=0, int ord=0)
{ x = abs ; y = ord ;
}
} ;
Écrire une fonction indépendante affiche, amie de la classe point, permettant
d’afficher les coordonnées d’un point. On fournira séparément un fichier source
contenant la nouvelle déclaration (définition) de point et un fichier source contenant
la définition de la fonction affiche. Écrire un petit programme (main) qui crée un point
de classe automatique et un point de classe dynamique et qui en affiche les
coordonnées.
Nous devons donc réaliser une fonction indépendante, nommée affiche, amie de la
classe point. Une telle fonction, contrairement à une fonction membre, ne reçoit plus
d’argument implicite ; affiche devra donc recevoir un argument de type point. Son
prototype sera donc de la forme :
void affiche (point) ;
si l’on souhaite transmettre un point par valeur, ou de la forme :
void affiche (point &) ;
si l’on souhaite transmettre un point par référence. Ici, nous choisirons cette dernière
possibilité et, comme affiche n’a aucune raison de modifier les valeurs du point reçu,
nous le protégerons à l’aide du qualificatif const :
void affiche (const point &) ;
Le qualificatif const permet d’appliquer la fonction affiche à un objet constant. Mais elle
pourra également être appliquée à une expression de type point, voire à une expression
d’un type susceptible d’être converti implicitement en un point (voir le chapitre relatif
188
