Développer en C++ - Niveau 2
Description
Le langage C++ est complexe, et offre de nombreuses possibilités. Que ce soit la gestion de la mémoire ou une meilleure utilisation du langage, il est important de s'assurer que le code mis en place offrira le plus de sécurité.
Objectifs
A l'issue de cette formation, les participants seront en mesure de:
- Comprendre les concepts présentés dans les différents modules de la formation
- Pouvoir effectuer des choix entre les différentes techniques présentées
- Réussir à les mettre en oeuvre de façon autonome lorsque le module est accompagné de travaux pratiques
Méthodes pédagogiques
Formation avec un minimum de 50% de travaux pratiques. La session alterne les présentations théoriques avec les exercices en groupe ou individuels. Des versions numériques de tous les documents sont remises aux participants (support de cours, énoncés, corrigés).
Participants
Ce cours est destiné à des personnes utilisant déjà le langage C++ et qui souhaitent approfondir leurs connaissances.
Pré requis
- Une première expérience du langage C++
Programme
Introduction à la STL
Présentation des éléments de base de la STL.
- La classe string
- Les itérateurs
- Les conteneurs associatifs
- Les conteneurs séquentiels
Le typage dynamique
Présentation du typage dynamique avec RTTI.
- Avantages et inconvénients du typage dynamique
- La conversion de type dynamique
- L'opérateur d'identification de type
Les smart pointers
Présentation des smart pointers et de leur utilisation.
- Qu'est-ce qu'un smart pointer ?
- Avantages et inconvénients
- Conversion implicite
Compatibilité entre C et C++
Présentation des éléments de code qui ne sont pas compatibles entre C et C++.
- Le code C incompatible avec le C++
La partie utilities de la STL
Dans STL, utilities offre de nombreux outils qui permettent de simplifier la mise au point d'applications C++.
- La classe pair
- Les pointeurs automatiques
- Les fonctions auxiliaires
Les fonctions Objet de la STL
Présentation des fonctions Objet (souvents appelées functors) de la STL.
- Présentation des fonctions Objet
- Utilisation des fonctions Objet
Les composants numériques de la STL
Présentation de l'utilisation des composants numériques (nombres complexes ...).
- Les nombres complexes
- La classe valarray
- Les fonctions numériques
Les allocators
Présentation des allocators et de leur utilité.
- Rôle des allocators
- L'allocator par défaut
- Les allocators utilisateurs
La librairie Boost
Présentation de la librairie Boost.
- Présentation de la meta-programmation
- Calcul et optimisation de code
- Génération automatique de code