Master Professionnel en Informatique, option Génie Logiciel (MGL) › Master 1 › Master GL · S2 · UE3 — Environnement de développement
Programmation orientée objet et C++
👤 Dr IBRAHIM GANAOU Noura — Docteur en Réseaux télécommunications
Présentation
Le C++ reste un langage de référence pour les logiciels où la performance et la maîtrise des ressources sont déterminantes : systèmes embarqués, moteurs de bases de données, logiciels de télécommunication, finance haute fréquence, jeux vidéo, bibliothèques scientifiques. Ce cours approfondit la programmation orientée objet à travers le C++ moderne (normes C++11 à C++20) : conception de classes robustes, héritage simple et multiple, polymorphisme dynamique, gestion déterministe des ressources (RAII, règle des 0/3/5, pointeurs intelligents), sécurité face aux exceptions et programmation générique (templates, bibliothèque standard STL, lambdas). Les exemples s’appuient sur des cas concrets : gestion de montants en FCFA, moyens de paiement, gestion de notes d’une école de Niamey, traitement de lots de transactions mobile money. Les TP se font en ligne de commande avec g++/clang++ et CMake, avec détection des fuites mémoire.
Objectifs d’apprentissage
- Concevoir des classes C++ encapsulées, correctement construites, copiées et détruites.
- Mettre en œuvre l’héritage (y compris multiple et virtuel) et le polymorphisme dynamique en maîtrisant la liaison dynamique.
- Gérer la mémoire sans fuite ni double libération grâce à RAII, à la sémantique de déplacement et aux pointeurs intelligents.
- Écrire du code sûr face aux exceptions (garanties basique, forte, sans échec).
- Utiliser et écrire du code générique : templates, conteneurs, itérateurs et algorithmes de la STL.
Prérequis
Algorithmique, programmation impérative (C ou Java), notions de modélisation objet UML (classes, associations, héritage).
Plan du cours
- Leçon 1 — Classes, encapsulation, constructeurs et surcharge d’opérateurs en C++
- Leçon 2 — Héritage simple et multiple, polymorphisme et fonctions virtuelles
- Leçon 3 — Gestion de la mémoire, sémantique de déplacement, pointeurs intelligents et exceptions
- Leçon 4 — Programmation générique : templates, STL et lambdas
Modalités d’évaluation
Volume horaire : 10 h de CM, 10 h de TD, 10 h de TP et 30 h de TPE (60 h, 3 crédits). Évaluation : contrôle continu (TP notés et mini-projet C++ : 40 %) et examen terminal écrit (60 %) comprenant lecture de code, prédiction de sorties et conception de classes.
Bibliographie
- Bjarne Stroustrup, The C++ Programming Language, 4e éd., Addison-Wesley, 2013.
- Bjarne Stroustrup, Programming: Principles and Practice Using C++, Addison-Wesley.
- Scott Meyers, Effective Modern C++, O’Reilly, 2014.
- Nicolai M. Josuttis, The C++ Standard Library: A Tutorial and Reference, Addison-Wesley.
- C++ Core Guidelines (B. Stroustrup, H. Sutter), isocpp.github.io ; référence en ligne cppreference.com.
Évaluation globale de la matière
Connectez-vous pour suivre votre progression.
Programme
- 🔒 Leçon 1 — Classes, encapsulation, constructeurs et surcharge d'opérateurs en C++ · 90 min
- 🔒 Leçon 2 — Héritage simple et multiple, polymorphisme et fonctions virtuelles · 90 min
- 🔒 Leçon 3 — Gestion de la mémoire, sémantique de déplacement, pointeurs intelligents et exceptions · 90 min
- 🔒 Leçon 4 — Programmation générique : templates, STL et lambdas · 90 min
- 🔒 Quiz — Programmation orientée objet et C++ · quiz
Évaluation globale de la matière
Connectez-vous pour suivre votre progression.
