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 très similaire à celle des structures sachant qu'il est possible d'y ajouter des déclarations de fonctions. Les fonctions membres d'une classe sont appelées méthodes et les variables déclarées dans une classe sont appelées 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 déclaration d'une classe se fait en remplaçant 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 forcément instance d'une classe.


Déclaration, définition et utilisation d'une classe


1) Déclaration

 Dans la déclaration d'une classe nous pouvons définir 3 parties distinctes (mais non obligatoires) :
  • partie privée (private): accessible que par les membres de la classe
  • partie protégée (protected) : accessible par la classe et ses classes dérivées
  • partie publique (public): accessible par les membres de la classe et l'extérieur
class point
{
private :
 float abscisse, ordonnee;

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

 Généralement on effectue les déclarations dans un fichier d'en-tête (header). Dans l'exemple précédent on écrirait la déclaration de la classe point dans le fichier point.h


2) Définition

#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 même manière que la déclaration, on utilise un fichier différent pour écrire la définition de la classe. Ces fichiers peuvent avoir plusieurs extensions : .C, .cxx, .cpp . Par exemple, on écrirait la définition 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-référence this


 Dans la définition d'une classe, il est possible de faire référence à 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 méthode.

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



  Retour en haut de page Page suivante