Langage C++
Description
Ce stage intensif permet d'acquérir des bases solides en C++ moderne. Ce langage a en effet subi des évolutions majeures au cours des 10 dernières années, au point qu'il est difficile pour un débutant de distinguer les bonnes pratiques de celles qui sont devenues obsolètes. Pour cette raison, cette formation s'attache à véhiculer les principes clés qui guident l'évolution de C++, et ce afin de faire gagner un temps précieux au stagiaire dans son apprentissage.
Public concerné
Ce cours s'adresse aux ingénieurs qui souhaitent acquérir une formation à l'approche objet et aux spécificités du langage C++. A l'issue de ce cours, ils sauront utiliser ce langage comme un véritable outil de programmation objet.
Objectifs de la formation
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.
Prérequis
Bonnes connaissances du langage C.
Programme de la formation
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
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)
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
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 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