affiche (s) ;
}
b. Voici la deuxième fonction demandée, accompagnée de son programme de test :
#include
using namespace std ;
struct point
{ char c ;
int x, y ;
} ;
void affiche (point * adp)
{ cout << "point " << adp->c << " de coordonnées "
<< adp->x << " " << adp->y ;
}
main()
{ void affiche (point *) ;
point s ;
s.c = 'A' ;
s.x = 10 ;
s.y = 12 ;
affiche (&s) ;
}
Notez que l’on doit, cette fois, faire appel à l’opérateur ->, à la place de l’opérateur
« point » (.), puisque l’on travaille avec un pointeur sur une structure, et non plus
avec la valeur de la structure elle-même. Toutefois l’usage de -> n’est pas totalement
indispensable, dans la mesure où, par exemple, adp->x est équivalent à (*adp).x.
c. Voici la troisième fonction demandée, accompagnée de son programme de test :
#include
using namespace std ;
struct point
{ char c ;
int x, y ;
} ;
void affiche (point & p)
{ cout << "point " << p.c << " de coordonnées "
<< p.x << " " << p.y ;
}
main()
{ void affiche (point &) ;
point s ;
s.c = 'A' ;
s.x = 10 ;
s.y = 12 ;
affiche (s) ;
}
Au lieu d’affecter des valeurs aux champs c, x et y de notre structure s (dans les trois
programmes d’essai), nous pourrions (ici) utiliser les possibilités d’initialisation
offertes par le langage C, en écrivant :
point s = {'A', 10, 12} ;
101
Précédent

- 102/398

Suivant