Élaborer des fonctions et des classes templates
Mettre en pratique la gestion des exceptions
Utiliser des opérateurs et des pointeurs pour implémenter l'indirection
Réutiliser les classes conteneurs et les algorithmes de la bibliothèque standard
Exercer le paradigme de la ''programmation générique''
Explorer l'expression idiomatique : ''l'acquisition des ressources, c'est l'initialisation''
Étendre votre utilisation des flux d'entrée / sortie (E/S)
Débattre de l'usage et de l'abus des requêtes de types à l'exécution (RTTI)
Maîtriser les aspects avancés de l'héritage (multiple - privé)
Mettre en oeuvre des stratégies spécifiques au C++ pour améliorer les performances
Développeurs C++ souhaitant approfondir leurs connaissances dans ce langage
Programme :
Les espaces de noms
Pourquoi utiliser les espaces de noms
Déclarations et définitions combinées
Définitions discontinues
Les bonnes pratiques
Les opérateurs
Opérateurs binaires et unaires
Opérateurs et réutilisation
Les foncteurs
Les opérateurs pointeur et type
Programmation dynamique avec RTTI
Utilisation de typeid() et type_info
Static_cast(), reinterpret_cast(), const_cast() et dynamic_cast()
Les templates
Le pré-processeur et les macros
Syntaxe
Fonction template
Classe template
Utilisation des templates
La bibliothèque STL
Les conteneurs
Les itérateurs
Les algorithmes
Les auto_ptr
Gérer la mémoire dynamique
Encapsuler un pointeur
Constructeurs et exceptions
Gérer la propriété de la mémoire
Initialiser et transmettre des auto_ptr
Pointeurs sur fonctions membres
Comparaison avec les pointeurs sur fonction en C
Syntaxe
Utilisation de Typedef
Les entrées / sorties
Cout, cin et cerr
Utilisation des fichiers
Les opérateurs de Streaming
La programmation générique
Révision des templates
Réification de fonctions
Les algorithmes de la STL
Gestion efficace des exceptions
Lever et relancer des exceptions
Capturer les exceptions
Hiérarchiser vos exceptions
Gérer les ressources avec les auto_ptr
Les bonnes pratiques
Utilisation avancée de l'héritage
Héritage privé, protégé et contrôle d'accès
Héritage multiple (IM)
IM et classes de base répliquées
Ambiguïté potentielle et résolution par la clause Using
Héritage virtuel et règles de dominance
Casting et héritage virtuel
Performance
Gérer efficacement les dépendances de compilation
Du bon usage de l'Inlining
Profiling, anticipation et mise en cache
Recyclage des objets et mise en Pool
Ecriture d'allocateurs de mémoire