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).
Travaux pratiques
Prise en main de l'environnement de développement et programmation d'un programme simple.
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).
Travaux pratiques
Application des concepts à une étude de cas qui sera l'un des fils directeurs des exercices suivants.
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...).
Travaux pratiques
La programmation de l'étude de cas. La conception et la construction d'une hiérarchie de classes et d'interfaces.
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 œuvre 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.
Travaux pratiques
La mise en place du polymorphisme dans l'étude de cas.
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.
Travaux pratiques
L'introduction des exceptions dans l'étude de cas.
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 '>>'.
Travaux pratiques
La surcharge de quelques opérateurs simples.
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.
Travaux pratiques
Exercices sur les modèles.
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++.