Programmation orientée objet (POO)

Cycle d'ingénieur, Électronique et Informatique pour l'Embarqué (EIE, 4ème année), Polytech Paris-Saclay, Université Paris-Saclay

Ce cours a pour objectif de fournir une maîtrise solide de la programmation orientée objet en langage C++. Il couvre les concepts fondamentaux et avancés du paradigme objet, ainsi que leur mise en œuvre pratique dans des applications logicielles efficaces, modulaires et robustes. Les étudiants développeront des compétences en conception logicielle, gestion de la mémoire, abstraction, encapsulation et polymorphisme.

Compétences acquises

  • Utiliser l’environnement de développement comme Visual Studio
  • Maîtriser l’ensemble de la syntaxe du langage C++
  • Concevoir, modifier et améliorer n’importe quelle classe C++
  • Traduire un algorithme dans une architecture objet C++ en utilisant l’encapsulation, le polymorphisme et les templates
  • Capable d’utiliser et intégrer n’importe quelle classe et grer n’importe quelle classe et bibliothèque de classes dans une application nouvelle ou existante.
  • Accéder, traiter et échanger des des données dans un environnement souple, efficace, sécurisé et en temps réel.

Sommaire du cours

Première partie : C++ basique

  • Introduction, extensions C++ : références, etc.
  • Données en C++ : types, duréée de vie, allocation
  • Approche objet, construction et destruction
  • Attributs, méthodes, pointeur this
  • Encapsulation, droits d’accès, accèsseurs
  • Surcharge d’opérateurs, flux d’entrée / sortie C++
  • Instances et membres statiques
  • Héritage simple, multiple, virtuel
  • Héritage et polymorphisme
  • Polymorphisme statique et dynamique
  • Bases abstraites, interfaces, gestion polymorphique

Deuxième partie : C++ avancée

  • Bases abstraites, interfaces, gestion polymorphique
  • Templates (patrons) de classes et fonctions, spécialisation
  • Utilisation des principaux templates de la STL (vector, string, algos)
  • Exceptions C et C++: gestion, classes prééddééfinies et custom
  • Introduction des autres bibliothèèques C++: boost, OpenCV, IPP, Cuda, PhysX, SystemC, CGAL, DLib, QT, MFC etc.
  • Evolutions du langage : C++ 11/14/17/20/23 (expressions constantes, déclaration automatique, listes d’initialisation, ctors par dééfaut pour les attributs, référence L-value et moving ctors, extension des for, contrôle fin de l’existence ou non des méthodes, ctors ou dtor)

Références/aide et documentation

  • Les exercices projet et les exercices projetés au tableau
  • Les transparents du cours (à la fin de chaque cours)
  • Help MSDN – Visual C++ 9, 10, 12, 15, 17
  • Websites : www.cplusplus.com, www.cppreference.com, stackoverflow.com, etc.
  • Un livre/cours C++ de Christian Casteyde traduit en français (lien local sur PC)
  • M. Vasiliu, Langage C++. Pearson Education (collection Synthex), 2005.
  • Livres éélectroniques : Wrox Press C++ Tutorial