Langage C++, aspects avancés
|
|
|
Objectifs
A l'issue du stage, les participants seront capables de mettre en oeuvre les mécanismes les plus avancés du langage C++ :
• |
Développer et utiliser des classes génériques à l'aide des templates |
• |
Mettre en oeuvre la STL (Standard Template Library) |
• |
Structurer la gestion des erreurs en utilisant les exceptions |
• |
Mettre en place une gestion du nommage efficace grâce au namespace |
• |
Effectuer des contrôles de types dynamiques en utilisant les services du RTTI (Real Time Type Information) |
• |
Développer des solutions C++ à base de Design Patterns |
|
Pré-requis |
|
Cette formation s'adresse aux personnes sachant déjà :
|
Méthode |
|
Chaque aspect théorique est illustré par un exemple concret de mise en oeuvre puis exploité dans la réalisation incrémentale d'une véritable application en mode console. 50 % du temps est consacré à la réalisation de cette application. Chaque stagiaire possède son poste de travail.
|
Programme |
|
LES TEMPLATES
(5 Heures)
- La généricité statique
- Spécification d'un template de classe
- Instanciation d'un template
- Contraintes de mise en oeuvre
- Templates de fonction
- Template de classe, template de fonction : utilisation conjointe
- Templates et héritage
- Templates versus polymorphisme
INTRODUCTION A LA LA STL (STANDARD TEMPLATE LIBRARY)
(5 Heures)
- Origines et présentation de la STL
- Principales collections : vector, liste, deque, set, map
- Les iterators
- La classe string
- Les algorithmes génériques courants
LES EXCEPTIONS C++
(2 Heures)
- Exceptions et stratégies de traitement des erreurs
- Mise en oeuvre des exceptions C++
- Spécification d'exceptions dans les prototypes des méthodes et propagation d'exception
- Les blocs try et catch
- Construire une hiérarchie d'exceptions
- Fonctions terminate et unexpected
LES NAMESPACES
(1 Heures)
- Les conflits de nommage et objectifs des namespaces
- Définition d'un namespace
- Utilisation des namespaces : directive et instruction using
- Instruction using et héritage et polymorphisme
LE REALTIME TYPE INFORMATION (RTTI)
(2 Heures)
- Le besoin d'effectuer un contrôle de type rigoureux à l'exécution - Opérateur typeid et la classe type_info - Exceptions liées à l'opérateur typeid - Les opérateurs static_cast et dymanic_cast
LES DESIGN PATTERNS
(3 Heures)
- Typologie des Design Patterns (Gamma)
- Singleton
- Façade et Adaptateur
- Observateur
- State
- Patterns liés à la gestion de la mémoire : pointeurs automatiques et intelligents
|
Outils de développement utilisés |
|
Chaîne de production gcc sous l'IDE Eclipse 3.6 et plug-in CDT.
|
Calendrier de réalisation |
|
Ce stage n'est pas planifié pour le moment mais vous avez la possibilité de
proposer une date de réalisation en cliquant ici.
|