Académique Documents
Professionnel Documents
Culture Documents
CHAPITRE 3:
CLASSES ET OBJETS
1
DÉCLARATION DE CLASSE EN C++
}; 2 2
DÉCLARATION DE CLASSE EN C++
Exemple : définition d’une classe Point de coordonnées x,y et de
couleur c.
class Point {
int m_x; // déclaration des attributs d’un point
int m_y; // coordonnées x, y et couleur
int m_c ;
// déclaration des méthodes notamment les get et set
int get_x(void);
int get_y(void);
int get_color(void);
void set_x(int);
void set_y(int);
void set_color(int); 3 3
void move(int, int); // méthode de déplacement du point
};
DÉCLARATION DE CLASSE EN C++
Remarques :
→ prendre l’habitude de commencer le nom des classes par une
majuscule pour les différencier des noms d’objets.
→ Les services getAttribut() et setAttribut() sont appelées des
accesseurs (accessors) : getters et setters.
4 4
DÉFINITION DES MÉTHODES
}
DÉFINITION DES MÉTHODES
●
Une classe peut avoir un ou plusieurs constructeurs : méthode(s) appelée(s)
automatique à la création des objets par cette classe.
●
Les constructeurs ont le même nom que la classe
●
Une classe a un seul destructeur : méthode appelée automatique à la
destruction des objets crées par cette classe.
●
Par défaut, ce destructeur détruit seulement l’objet et non les objets associés.
●
On peut redéfinir ce destructeur. Il n’a aucun argument, aucun type de retour
et a le même nom que la classe précédé d’un tilde ~
●
Si aucun constructeur n’est spécifié, on utilise lors de la création de l’objet le
constructeur par défaut sans argument, qui ne fait rien.
●
Dès lors qu’un constructeur est spécifié, ce constructeur par défaut n’existe
plus.
7
Comme une méthode, le constructeur est normalement déclaré dans la classe
7
●
et défini en dehors.
EXEMPLES DE CONSTRUCTEURS ET DESTRUCTEUR POUR LA CLASSE
POINT
// Constructeurs
Point::Point() {m_x=0; m_y=0};
// destructeur
Point::~Point() {}; 8 8
CONSTRUCTEUR PAR RECOPIE
11 11
DROITS D'ACCÈS ET ENCAPSULATION
→ En C++, il y a trois niveaux de visibilité:
public : les composants publics sont accessibles par toutes les
fonctions ou classes;
private : les composants privés ne sont accessibles que par des
méthodes de la classe;
protected : les composants protégés ne sont accessibles que par des
méthodes de la classe ou des classes héritant de la classe.
●
La déclaration de la classe, se trouve dans un fichier entête
(exemple point.h pour la classe Point)
●
et les définitions dans un fichier de code (point.cpp pour la
classe Point)
●
Si on définit une méthode dans une classe, le compilateur la
considère inline.
14 14