Exood4 Studio - Video Game Development, Toulouse (France)
Exood4 Studios Exood4 Tutorials

   
L a n g a g e   C++

L e s   c l a s s e s






Introduction


 La notion de classe est trs similaire celle des structures sachant qu'il est possible d'y ajouter des dclarations de fonctions. Les fonctions membres d'une classe sont appeles mthodes et les variables dclares dans une classe sont appeles attributs.

 En C++, les structures peuvent aussi contenir des fonctions. De l vient le rapprochement entre les structures et les classes :

struct point
{
 float abscisse, ordonnee;
 
 void initialiser()
 {
 abscisse = 0;
 ordonnee = 0;
 }
 
 void afficher();
};

void point::afficher()
{
 cout << "(" << abscisse << "," << ordonnee << ")\n";
}

point p;

p.initialiser();
p.afficher();

 Nous allons voir que la dclaration d'une classe se fait en remplaant tout simplement le mot-cl struct par le mot-cl class. Tout programme utilisant une classe A est "client de la classe A".

int x; // x est une instance du type int
MaClasse A; // A est une instance de la classe MaClasse

 A est galement appel objet. Tout objet est forcment instance d'une classe.


Dclaration, dfinition et utilisation d'une classe


1) Dclaration

 Dans la dclaration d'une classe nous pouvons dfinir 3 parties distinctes (mais non obligatoires) :
  • partie prive (private): accessible que par les membres de la classe
  • partie protge (protected) : accessible par la classe et ses classes drives
  • partie publique (public): accessible par les membres de la classe et l'extrieur
class point
{
private :
 float abscisse, ordonnee;

public :
 void initialiser (float,float);
 void afficher ();
 void deplacer (float,float);
};

 Gnralement on effectue les dclarations dans un fichier d'en-tte (header). Dans l'exemple prcdent on crirait la dclaration de la classe point dans le fichier point.h


2) Dfinition

#include <iostream.h>
#include "point.h"

void point::initialiser (float x, float y)
{
 abscisse = x;
 ordonnee = y;
}

void point::afficher ()
{
 cout << "("<< abscisse << ",";
 cout << ordonnee << ")";
}

void point::deplacer (float x, float y)
{
 abscisse = abscisse + x;
 ordonnee = ordonnee + y;
}

 De la mme manire que la dclaration, on utilise un fichier diffrent pour crire la dfinition de la classe. Ces fichiers peuvent avoir plusieurs extensions : .C, .cxx, .cpp . Par exemple, on crirait la dfinition de la classe point dans le fichier point.cpp


3) Utilisation

#include "point.h"

void main ()
{
 point p;

 p.initialiser (3.5, 6.2);
 p.afficher ();
 p.deplacer (3.0, 2.0);
 p.afficher ();
}


Compilation



La variable d'auto-rfrence this


 Dans la dfinition d'une classe, il est possible de faire rfrence l'objet en cours d'utilisation. On utilise pour cela l'identifiant this qui est un pointeur de l'objet sur lequel s'applique la mthode.

void point::afficher ()
{
 cout << this->abscisse; // quivalent : cout << abscisse;
 cout << this->ordonnee; // quivalent : cout << ordonnee;
}



  Retour en haut de page Page suivante