next up previous
Next: Fonctions membres Up: Les classes Previous: Les classes

Syntaxe

Une classe est une structure particulière qui permet d'englober plusieurs variables différentes sous un même nom.

Par exemple, si vous manipulez un certain nombre de tableaux de double et que vous n'avez pas envie de devoir créer pour chaque tableau une variable qui représente sa taille, vous pouvez créer une classe nommée Tableau, qui aura deux champs: un nommé tab, pour le tableau (un double*) et un autre nommé n, pour sa taille (un int):

struct Tableau {
  double* tab;
  int n;
};

Attention à ne pas oublier le point-virgule à la fin de la classe ! De même que les fonctions, la classe Tableau doit avoir été déclarée avant d'être utilisée, séparément du reste du code (comme une fonction). De même que pour les fonctions, on peut distinguer la déclaration de la classe de sa définition (qui elle était donnée ci-dessus). La syntaxe de la déclaration, comme pour les fonctions, consiste à troquer le bloc d'instruction pour un point-virgule:

struct Tableau;

Dans le programme vous pourrez utiliser simplement cette classe de la façon suivante:

Tableau A;
A.n = 4;
A.tab = new double[4];

for (int i=0; i<A.n; i++)
  A.tab[i] = 0.;

Tableau B;
B.n = A.n + 1;
B.tab = new double[B.n];

Le nom de la classe est un type comme les autres, de même que int, double et les autres types de base. Ici on a déclaré une variable A (objet) de type Tableau (classe de l'objet). L'ordinateur lui associe automatiquement deux variables propres (champs) n et tab, de type respectif int et double*. L'accès à ces champs se fait en ajoutant derrière l'objet un point suivi du nom du champ.

L'exemple précédent est équivalent, d'une certaine façon, à:

int An;
double* Atab;

An = 4;
Atab = new double[4];

for (int i=0; i<An; i++)
  Atab[i] = 0.;

int Bn;
double* Btab;

Bn = An + 1;
Btab = new double[Bn];

On peut donc déjà voir l'intérêt des classes comme raccourci pour la déclaration des variables ainsi que comme généralisateur qui permet d'avoir plusieurs objets qui suivent un même schéma (chacun ayant ses propes champs, de même nom).

Nous verrons que l'intérêt des classes est bien plus vaste.


next up previous
Next: Fonctions membres Up: Les classes Previous: Les classes
Guillaume Charpiat 2006-12-07