Développement C/C++ : Le langage C++ ANSI - Concepts avancés
|
|
Durée de la formation : 5 jours
|
|
Objectifs :
L'objectif de la formation est de présenter : les concepts avancés du langage de programmation C++, la librairie
C++ ANSI (et notamment la STL - Standard Template Library) ainsi que les concepts de programmations les plus
adaptés à C++ (notamment la technique RAII). Par défaut, l'atelier de développement utilisé sera Eclipse/CDT.
L'accent sera mis sur les nombreux travaux pratiques proposés (50% de la durée de la formation).
Prérequis :
Pour pouvoir suivre ce cours, les stagiaires doivent obligatoirement maîtriser les concepts de base du langage
C++ : codage de classes, instanciation d'objets, manipulation de pointeurs, définition et utilisation de propriétés
(get et set), ... Ces différents points sont couverts dans
la formation C++ - Les fondamentaux.
Public ciblé :
Tous développeurs C++ désireux de parfaire leurs connaissances sur le langage C++ et sur sa librairie.
Situer cette formation dans un cursus global
La formation sera dispensée par un formateur expérimenté sur les technologies et les produits présentés.
Chaque participant se verra remettre un support de cours et disposera d'un PC afin de pouvoir effectuer
les différents travaux pratiques. La formation pourra être dispensée à Saint Laurent du Var (à proximité de Nice),
à Meylan (à proximité de Grenoble), à Paris ou dans les locaux de votre entreprise.
-
Mise à niveau des différents stagiaires
-
Rappels sur les éléments fondamentaux
-
Utilisation de la librairie C++ ANSI
-
Les classes de flux <iostream>
-
La classe de manipulations de chaînes de caractères : string
-
-
Les solutions à cette problématique
-
Mise en oeuvre d'une classe de Smart Pointeur (pointeurs malins)
-
L'héritage - aspects évolués
-
Constructions et destructions d'objets basés sur l'héritage
-
Cascade des appels de constructeur
-
Cascade des appels de destructeur
-
Polymorphisme et modes de liaison de méthode
-
Liaison statique d'appel de méthodes
-
Liaison dynamique d'appel de méthodes
-
Définition du polymorphisme
-
L'héritage induit le polymorphisme
-
Modes de liaisons d'appels de méthodes
-
La liaison statique (early binding)
-
La liaison dynamique (late binding)
-
Fonctionnement en interne de la liaison dynamique
-
Le piège des destructeurs et les fuites mémoires
-
Définition de méthodes et de classes abstraites
-
-
Les tables de pointeurs de méthodes à liaison dynamique
-
Fonctionnement du compilateur
-
Fonctionnement avec l'héritage multiple
-
Mise en oeuvre d'interfaces en C++
-
Le RTTI (RunTime Type Identification)
-
Identification dynamique de types
-
-
Fonctionnement avec les types pointés
-
Fonctionnement avec les types référencés
-
Les autres opérateurs de transtypages (non liés au RTTI)
-
L'opérateur reinterprete_cast
-
Utilisation du RTTI dans la mise en oeuvre d'un moteur de sérialisation
-
Fonctionnement général de la sérialisation
-
Sauvegarde d'un objet sur le flux
-
Reconstruction des objets en mémoire
-
Comparatif avec le moteur des MFC
-
Les espaces de noms (namespace)
-
-
Intérêts des espaces de noms
-
Mieux structurer vos codes
-
Eviter les confits de noms
-
Localiser les fonctions du namespace global
-
Le namespace std et C++ ANSI
-
Gestion des exceptions
-
Qu'est qu'une exception ?
-
Définition d'une classe d'exception
-
Les classes d'exceptions ANSI
-
Déclanchement d'exceptions
-
Attention au piège des constructeurs
-
Modes de traitement d'une exception
-
Capturer l'exception - instruction try ... catch
-
Relayer l'exception à la méthode appelante
-
Cas subtils d'utilisations des exceptions
-
Comment dépiler de plusieurs contextes
-
Contrôler l'exécution normale du programme
-
Les exceptions prédéfinies de la librairie ANSI
-
Quelques autres classes d'exception
-
Rappels sur la généricité (Les templates)
-
Buts et intérêts de la généricité (factorisation de code)
-
-
Où localiser le code d'une fonction générique
-
Définitions de classes génériques
-
Implémentation des méthodes génériques
-
Points subtils liés à la syntaxe des templates
-
Utilisation de la STL (Standard Template Library)
-
-
Notion de functions/objects
-
Manipulations de quelques conteneurs
-
Utilisation des types vector et list
-
Les paires et les tables associatives
-
Techniques de développement
-
Sensibilisation à l'utilisation de design patterns
-
Technique de développement RAII (Resource Acquisition Is Initialization)
-
Présentation rapide de la librairie Boost
-
Boost : un pas vers C++ 1x
© Infini Software - 2011 - Tous droits réservés - 06 63 33 14 06
439, chemin de la Ferrière - 06750 Valderoure