Vous êtes sur la page 1sur 2

Langage C++

Série n° 1
Exercice 1
On veut réaliser une classe point3D permettant de définir des points dans l’espace à trois
dimensions. On vous propose la déclaration suivante :
class point3D
{
float x,y,z ;
public :
…..
};
1. On veut pouvoir déclarer un point, soit en fournissant explicitement ses trois coordonnées,
soit en fournissant aucune, auquel cas le point créé possédera trois coordonnées nulles.
Ecrire le ou les constructeurs (s) correspondant (s) :
a. En utilisant des fonctions membre surdéfinies.
b. En utilisant une seule fonction membre « en ligne ».
2. On veut cette fois pouvoir connaitre, à tout moment, le nombre d’objets existants. Pour ce
faire, on se propose d’ajouter un membre donné représentant un compteur du nombre
d’objets créés qui sera partagé par tous les objets de la classe.
a. Ecrire la nouvelle classe point3D en définissant les fonctions membre devant agir sur ce
compteur
b. Ecrire une méthode de classe qui retourne le nombre d’objets crées et prévoir son appel
dans une fonction main.

Exercice 2
On considère la classe Vecteur suivante permettant la manipulation de vecteurs à trois
composantes :
class Vecteur
{ float v[3] ;
public :
Vecteur() ;
Vecteur(float,float,float) ;
~Vecteur() ; // destructeur
void afficher() ;

};

1
1. Définir les fonctions membre mentionnées dans la déclaration de la classe vecteur.

2. Donner la fonction main qui utilise cette classe : création, modification et affichage d’objets de
type vecteur (utiliser les objets temporaires pour la modification des objets).

3. Introduire une fonction membre nommé coïncide permettant de savoir si deux vecteurs sont
égaux.

4. Ajouter une fonction membre somme, permettant de calculer la somme de deux vecteurs, en
utilisant :

a. Le passage par valeur


b. Le passage par adresse
c. Le passage par référence
5. Ecrire une fonction ordinaire permettant de calculer la somme d’un tableau de vecteurs.
Donner le programme principal qui saisie un tableau de n vecteurs et affiche leur somme.

Exercice 3
Ecrire une classe list permettant le traitement sur des listes de réels, et comportant :
En membre privés :
 Le nombre d’éléments nbr_el
 Un pointeur float*L
Class List
{
Private:
int nb_elt ;
Float*L
Public:
...........
};