Formation Programmation objet en C++

Ce stage intensif a deux objectifs : initier les participants aux méthodes et réflexes de la programmation par objets ; leur apporter une maîtrise opérationnelle complète du langage C++. Il est le fruit d’une longue expérience en matière de développement en C++ et est construit selon une pédagogie rigoureuse reposant sur des travaux pratiques nombreux et progressifs. Ce cours est basé sur le standard C++ 11, version la plus récente de la norme C++.

Objectifs pédagogiques

Maîtriser la syntaxe du langage C++
Mettre en oeuvre les concepts de la conception orientée objet
Utiliser les outils de développement associés au langage C++
Maîtriser les ajouts majeurs de la norme C++ 11

Sommaire

  • La syntaxe du C++ (différences entre C et C++)
  • Approche orientée objet
  • Les classes et les objets C++
  • Dérivation et héritage
  • Les exceptions
  • La surcharge des opérateurs
  • Les modèles
  • Les I/O et aperçu sur la STL
  • Conclusion

Programme

» La syntaxe du C++ (différences entre C et C++)
Données : définition, initialisation, types de données.
Expressions : notion de référence, mécanismes de cast.
Opérateurs (: :, new, delete).
Fonctions (passage de paramètres et valeur de retour par référence, valeurs par défaut, inlining, surcharge).
Utilisation du code C dans un programme C++.
Les références (arguments et valeurs de retour).
Les types constants.
Les espaces de nommage.
Le typage « automatique » avec le mot-clé auto (C++ 11).

» Approche orientée objet
Les principes généraux des techniques objet.
C++ et la programmation objet.
Une introduction aux méthodologies orientées objet.
Une introduction aux modèles et à la notation UML (modèle statique, dynamique, modèle
de coopération, scénario).

» Les classes et les objets C++
Les aspects syntaxiques : les champs, les méthodes, les constructeurs.
Le contrôle d’accès.
L’autoréférence.
Les champs et méthodes statiques.
Les fonctions.
Les méthodes et les classes friend.
La création dynamique des tableaux d’objets.
Les aspects méthodologiques : la conception des classes.
Les constructeurs de copie et de déplacement (C++11).
La délégation de constructeurs (C++ 11).
Introduction aux problématiques de gestion mémoire (pile, tas, ramasse-miettes…).

» Dérivation et héritage
Principe de la dérivation.
Les aspects syntaxiques : la définition des classes dérivées, les constructeurs.
Le contrôle d’accès.
La mise en oeuvre du polymorphisme : les fonctions virtuelles.
La réutilisation de code : les classes abstraites.
Les interfaces.
La dérivation multiple.
Les aspects sémantiques et méthodologiques : la factorisation du code.

» Les exceptions
Les aspects syntaxiques : les blocs de try, la génération des exceptions.
Les aspects méthodologiques : la construction d’une hiérarchie d’exception, l’utilisation des exceptions.

» La surcharge des opérateurs
Principe de la surcharge.
Surcharge des opérateurs binaires.
Surcharge particulière : l’opérateur indice, fonction, conversion.
Surcharge des opérateurs de gestion mémoire.
Surcharge des opérateurs ‘<<‘ et ‘>>’.

» Les modèles
Modèle de classe. Principes et mécanismes généraux. Surcharge des modèles et redéfinition de méthodes.
Modèle de fonction. Principes et mécanismes généraux. Surcharge des modèles.
Modèles et surcharge des opérateurs.
Les modèles et les mécanismes de dérivation.
Les améliorations proposées par C++ 11.

» Les I/O et aperçu sur la STL
Les I/O.
Le principe des streams et la hiérarchie des classes d’entrée/sortie.
Description de quelques classes d’entrées/sorties.
Aperçu sur la STL.
Objectifs et principes.
Descriptions de quelques modèles et classes.
Les conteneurs, les itérateurs, la boucle basée sur un intervalle (C++ 11).

» Conclusion
Cycle de vie du logiciel : test, intégration, méthode de mise en production.
Interaction avec les autres environnements.
Analyse critique du C++.
Evolution du C++.