Académique Documents
Professionnel Documents
Culture Documents
1/4
UMMTO, Masters1 Académiques
Programmation Orientée Objets en C++ (UEM1.1)
➔ Utilisation de la classe :
L’accès aux composants de la classe courante se fait directement par le nom du composant (attribut
ou méthode).
Point p; // déclaration d’un point p dans ce cas c’est le constructeur Point() qui sera appelé
Point q(10, 20, 120); // déclaration d’un point q avec initialisation, dans ce cas, c’est le constructeur
// Point(int, int, int) qui sera appelé
Point *u; // Déclaration d’un pointeur sur un point
cout << p.get_x(); // affiche la coordonnée x du point p
cout << p.m_y; // affiche la coordonnée y de p si elle est publique
q.set_y(120); // change la coordonnée y du point q en 120
p.move(15, 25); // déplace le point p aux coordonnées x=15 et y=25
u=new Point; // Allocation mémoire pour le point u
u->set_x=125; // exécution de la méthode set_x pour le point u. Ici on utilise -> au lieu du .
cout << u->get_x(); // affichage de la coordonnée x du point u
➔ Constructeur et destructeur,
Si aucun constructeur n’est spécifié, on utilise lors de la création de l’objet un 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.
2/4
UMMTO, Masters1 Académiques
Programmation Orientée Objets en C++ (UEM1.1)
Comme une méthode, le constructeur est normalement seulement déclaré dans la classe et défini en
dehors.
Point::Point(int x, int y, int color ){
m_x = x; m_y = y; m_color = color;
}
Comme pour une fonction ou une méthode, le constructeur peut avoir des valeurs par défaut pour
certains de ces éléments.
Constructeur par recopie : À chaque fois qu’un objet est dupliqué (passage par valeur dans une
fonction par exemple), un constructeur par copie est appelé.
Si celui-ci n’est pas explicitement défini, l’action du constructeur par défaut consiste à copier la
valeur des attributs. On peut redéfinir ce constructeur ; il s’agit d’un constructeur qui prend en
paramètre une référence constante d’un objet du type courant :
Point(const Point&);
Attention, si ce constructeur est explicitement défini, il faut explicitement définir la copie des
valeurs des attributs qui ne se fait plus toute seule.
Pour créer un objet par recopie, il suffit de faire passer en paramètre un objet à la déclaration de
l’objet à créer :
Point p(12, 55, 10);
Point z(p): // z aura les mêmes valeurs que le point p
Destructeur : À chaque fois qu’un objet est détruit (fin de vie d’une variable automatique, dés-
allocation explicite), un destructeur de l’objet est appelé. 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 ; il porte le nom de la
classe précédé d’un tilde ~ : exemple :
~Point();
3/4
UMMTO, Masters1 Académiques
Programmation Orientée Objets en C++ (UEM1.1)
Semestre : 1
Unité d’enseignement : UEM 1.1
Matière 4 : Programmation orientée objets en C++
VHS : 37h30 (Cours : 1h30, TP : 1h00)
Crédits : 3
Coefficient : 2
Objectifs de l’enseignement :
L’étudiant va devoir apprendre à partir de cette matière les fondements de base de la
programmation orientée objets ainsi que la maitrise des techniques de conception des
programmes avancés en langage C++.
Connaissances préalables recommandées :
Programmation en langage C.
Contenu de la matière :
Chapitre 1. Introduction à la programmation orientée objets (POO) (2 semaines)
Principe de la POO, Définition du langage C++, Mise en route de langage C++, Le noyau C du langage C+
+.
Chapitre 2. Notions de base (2 semaines)
Les structures de contrôle, Les fonctions, Les tableaux, La récursivité, Les fichiers, Pointeurs, Pointeurs
et références, Pointeurs et tableaux, L'allocation dynamique.
Chapitre 3. Classes et objets (3 semaines)
Déclaration de classe, Variables et méthodes d'instance, Définition des méthodes, Droits d'accès et
encapsulation, Séparations prototypes et définitions, Constructeur et destructeur, Les méthodes
constantes, Association des classes entre-elles, classes et pointeurs.
Chapitre 4. Héritage et polymorphisme (3 semaines)
Héritage, Règles d'héritage, Chaînage des constructeurs, Classes de base, Préprocesseur et directives
de compilation, Polymorphisme, Règles à suivre, Méthodes et classes abstraites, Interfaces,
Traitements uniformes, Tableaux dynamiques, Chaînage des méthodes, Implémentation des méthodes
virtuelles, Classes imbriquées.
Chapitre 5. Les conteneurs, itérateurs et foncteurs (3 semaines)
Les séquences et leurs adaptateurs, Les tables associatives, Choix du bon conteneur, Itérateurs : des
pointeurs boostés, La pleine puissance des list et map, Foncteur : la version objet des fonctions, Fusion
des deux concepts.
Chapitre 6. Notions avancées (2 semaines)
La gestion des exceptions, Les exceptions standard, Les assertions, Les fonctions templates, La
spécialisation, Les classes templates.
4/4