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.
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 " objets ".
- Une introduction aux modèles et à la notation UML (modèle statique, dynamique, modèle de coopération, scénario).
Travaux pratiques
L'application des concepts à une étude de cas qui sera l'un des fils directeurs des exercices suivants.
La programmation objet avec C++
Les classes et les objets
- Les aspects syntaxiques : les champs, les méthodes, les constructeurs.
- Le contrôle d'accès.
- L'auto-ré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.
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.
- La dérivation multiple.
- Les aspects sémantiques et méthodologiques : la factorisation du code.
Travaux pratiques
La programmation de l'étude de cas. La conception et la construction d'une hiérarchie de classes et d'interfaces. 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.
Travaux pratiques
TP 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.
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++.