Code : POP
Objectif
Le C++ est un langage très technique mettant à rude épreuve les nerfs des développeurs d’applications. La syntaxe du C, conjuguée avec la mécanique des pointeurs mémoires, la programmation orientée objet et les classes, demandent une attention de tous les instants dans l’utilisation du C++.
Une grande rigueur dans l’approche de ces développements et une bonne connaissance des problèmes « mécaniques » liés à l’utilisation du C++ sont nécessaires.
La formation a été bâtie avec une approche « études de cas ». Le but de celle-ci est de faire profiter des expériences acquises dans le développement d’applications importantes.
Animation
Les formations « C++ Perfectionnement » sont réalisées par des formateurs ayant une grande expérience dans la conception objet et le langage C++. Ils ont participé à des projets mettant en situation parfois des équipes de plus de 100 développeurs C++. Ils connaissent également le langage C et surtout Java et peuvent comparer les différents langages. Une place importante est consacrée aux travaux dirigés.
Exercices
De nombreux exercices sont pratiqués.
Public
Développeurs.
Pré-requis
Plusieurs mois de pratique du langage C++.
Durée
4 jours.
Programme de la formation C++ Perfectionnement
Introduction sur les pièges C++
- Présentation des principaux pièges : pointeurs, MLK, compteurs de référence, constructeurs, virtualités, etc.
- Expérience des grand projets
- Présentation des pièges classiques : allocation de données globales, directives de pré-compilation, croisement des fichiers entêtes
Gestion de la mémoire avancée de C++
- Allocation dynamique de la mémoire
- Libération de la mémoire
- Pièges « courant » liés à l’utilisation de la mémoire en C++
- Atelier : études de cas sur la gestion de la mémoire
Gestion des pointeurs mémoire
- Pointeurs et pointeurs de pointeurs
- Pièges « courants » liés à l’utilisation des pointeurs
- Ecrire un meilleur code en utilisant les pointeurs
- Atelier : étude de cas sur les pointeurs
Les classes
- Constructeur et destructeur
- Les constructeurs et la virtualité
- Le destructeur virtuel et l’héritage
- Constructeur par copie : utilité et règle de la forme canonique des classes
- Atelier : constructeur par copie, destructeur virtuel etc.
Gestion des exceptions
- Principe de la gestion des exceptions
- Mise en œuvre
- Dangers liés à la gestion des exceptions
- Atelier : études de cas
Les classes, mécanismes avancés
- Mécanismes avancés
- Héritage privé et multiple, l’héritage virtuel
- La classe abstraite
- Principe des interfaces en P.O.O.
- Simuler des interfaces avec des classes C++
- Problèmes constatés dans les projets dans certains cas avec les classes
- Atelier : études de cas
La gestion des Smart Pointer
- Principe des « Smart Pointers »
- Les smart pointers de BOOST
- Controverse
- Opérateurs de conversion de types
- Atelier : les « Smart Pointers »
Les outils de test d’un programme C++
- Introduction aux tests des processus
- Débogage avancé
- Détection des fuites mémoire
- Détection des violations d’accès à la mémoire
- Effets de bord mémoire
- Atelier : tester un code C++ pour le rendre efficace
Les règles C++
- Pourquoi des règles de programmation
- Liste des règles