Présentation : Le langage C++ est un langage puissant mais complexe. Sa maîtrise parfaite nécessite une bonne connaissance de certains concepts singuliers du langage.
Objectifs : maîtriser les subtilités du langage C++ afin de développer avec efficacité et éviter certains pièges de programmation.
Durée : 4 jours
Public concerné : développeurs, chefs de projets.
Pré-requis : ce cours s’adresse à des développeurs ayant déjà une solide expérience de la programmation en langage C++.
Travaux pratiques : les travaux pratiques sont réalisés en utilisant le compilateur DevC++ ou Visual C++ sous Windows ou encore gcc sous Unix/Linux.
Contenu de la formation
Espaces de noms :
- principe
- la directive using
- composition
- sélection
- extension
- alias
- espaces de noms anonymes
Surcharge d’opérateurs :
- principe
- opérateurs unaires
- opérateurs binaires
- opérateurs d’allocation
- opérateurs d’entrées-sorties
Héritage :
- héritages public, privés, protégés
- héritage public
- héritage protégé
- héritage privé
- héritage multiple
- héritage multiple répété
- classes de base virtuelles
- déclarations using
Conversions explicites (casts) :
- présentation
- const_cast
- static_cast
- reinterpret_cast
- dynamic_cast
Identification de type à l’exécution (RTTI) :
- principe
- dynamic_cast
- type_info
Pointeurs sur membres :
- syntaxe
- mise en oeuvre
Pointeurs intelligents (smart pointers) :
- présentation
- auto_ptr
- gestion de ressources
Les exceptions :
- principe
- les classes d’exceptions
- lever une exception
- gestionnaires d’exceptions
- liste d’exceptions
- hiérarchies d’exceptions
- exceptions standards
- exceptions et constructeurs
- exceptions et gestion des ressources
- bonnes pratiques
Templates :
- présentation
- syntaxe
- templates de fonctions
- templates de classes
- templates de méthodes
- instanciation des templates
- spécialisation des templates
- avantages/inconvénients
Les foncteurs :
- présentation
- foncteurs prédéfinis
- adaptateurs
- intérêt des foncteurs
La bibliothèque STL :
- présentation
- les conteneurs
- les itérateurs
- les algorithmes
- les entrées-sorties
Idiomes :
- traits
- sfinae (substitution failure is not an error)
- crtp (curiously recurring template pattern)
Méta-programmation :
- présentation
- avantages/inconvénients
- optimisations
- expressions tempates