Programmer en C++
Les classes : Introduction, variables et fonctions membres

1. Déclaration d'une classe

class Point
{
private:
    int x;
    int y;
public:
    void initialiser(int, int);
    void afficher();
};

L'analyse de cette partie de code nous montre que la classe se déclare avec le mot clef "class" suivi du nom que nous voulons donner à notre classe (ici Point). Vient ensuite une paire d'accolades entre lesquelles, nous indiquons ce que contient la classe. Notez, après la dernière accolade, la présence non habituelle d'un point virgule qu'il ne faut surtout pas oublier. C'est lui qui met fin à la déclaration. Voyons maintenant le contenu de notre classe. Nous avons ici :

2. Définition des fonctions membres

C'est dans cette partie que nous allons détailler le contenu de nos deux fonctions (initialiser, et afficher).

void Point::initialiser(int abscisse, int ordonnee)
{
    x = abscisse;
    y = ordonnee;
}

void Point::afficher()
{
    cout << "Les coordonnees du point sont (" << x << ", " << y << ")" << endl;
}

3. Introduction d'une classe dans un programme

Nous allons utiliser la classe que nous venons de définir précédemment. Souvenez vous que, pour déclarer une variable, on la fait précéder de son type (int, double, etc.). Sur le même modèle pour créer un objet de type Point (on dit aussi une instance de la classe Point), nous écrivons :

Point a;

Voilà notre ordinateur vient de nous créer un objet "a" qui contient deux variables entières "x" et "y". Toutefois il manque encore quelque chose. Aucune valeur n'est attribuée à nos deux variables. Nous devons donc les initialiser en utilisant la fonction que nous avons spécialement écrite plus haut :

a.initialiser(5, -3);

Notez l'écriture particulière : On indique le nom de l'objet (de type Point), suivi d'un point, puis on écrit le nom de la fonction membre, et on termine en donnant les valeurs que la fonction réclame.
Voyons maintenant une exemple de programme complet :

#include <iostream>
#include <cstdlib>

using namespace std;

// Déclaration de la classe Point
class Point
{
private:
    int x;
    int y;
public:
    void initialiser(int, int);
    void afficher();
};

int main()
{
    Point a;
    a.initialiser(5, -3);
    a.afficher();
    system("PAUSE");
    return 0;
}

// Définitions des fonctions de la classe Point
void Point::initialiser(int abscisse, int ordonnee)
{
    x = abscisse;
    y = ordonnee;
}

void Point::afficher()
{
    cout << "Les coordonnees du point sont (" << x << ", " << y << ")" << endl;
}

Attention : La déclaration de la classe doit être lue avant la partie principale du programme "main()". Les définitions des fonctions membres s'écrivent toujours après leur déclarations. Par contre elles peuvent se placer avant ou après la partie principale du programme.
Si on lance ce programme, voici ce qu'on obtient :

Les coordonnees du point sont (5, -3)
Appuyez sur une touche pour continuer ...

4. Modifier une variable membre

On supposera dans cette partie réutiliser la classe précédente. Dans le cas ou la variable membre est déclarée comme public, la modification se fait simplement comme ceci :

Point a;
a.x = 2;     // Acces direct (variable publique uniquement)

Toutefois cette pratique est peu utilisée car n'oublions pas que les classes on été crée pour protéger leurs variables membres. L'accès à ces variables ne pourra donc se faire qu'au travers une fonction membre publique, dont la définition pourrait par exemple ressembler à ceci :

void Point::deplacer(int dx, int dy)
{
    x += dx;
    y += dy;
}

Dans la fonction main() nous pourrions alors écrire :

Point a;
a.initialiser(2, 4);
a.afficher();
a.deplacer(3, -1);
a.afficher();

Observez la clarté qu'apporte l'utilisation d'une classe dans notre programme. Si nous le lançons, voici ce qu'on obtient :

Les coordonnees du point sont (2, 4)
Les coordonnees du point sont (5, 3)
Appuyez sur une touche pour continuer ...