Rappels sur la syntaxe de base
Création de tableaux
Anatomie d'une classe
Spécificateurs d'accès private et public
Création d'objets
Constructeurs, méthodes d'instance, méthodes static
Surcharge de fonctions et de méthodes
Paramètres par défaut
Passage d'arguments aux fonctions et aux méthodes: par valeur, par adresse, par référence
Le constructeur de copie
Surcharge de l'opérateur d'affectation
Le destructeur
Les méthodes const
Les membres static
Travaux Pratiques :
Création de quelques classes avec constructeurs et méthodes surchargés
Manipulation d'instances de ces classes
Mise en œuvre de l'héritage et du polymorphisme
Usage du mot-clé protected
Distinction surcharge/redéfinition
Manipulation d'instances de sous-classes
Spécificateur protected
Types d'héritage : public, protégé, private
Utiliser les classes abstraites
Déclaration de méthodes virtuelles et virtuelles pures
Développer du code mettant en œuvre le polymorphisme, redéfinir des méthodes
Mise en œuvre de l'héritage multiple
Travaux Pratiques :
Parcours d'une hiérarchie d'objets sans, puis avec polymorphisme
Les pointeurs intelligents (smart pointers C++11)
Danger des pointeurs nus
Principe de la gestion de ressources
Intérêt des smart pointers
Raisons de l'obsolescence de auto_ptr
Mise en œuvre de unique_ptr, shared_ptr
Travaux Pratiques :
Remplacement, dans une application, de pointeurs nus par des pointeurs intelligents
Gestion des exceptions
Décrire les avantages de la gestion d'exceptions
Créer un bloc try-catch et déterminer comment les exceptions modifient le déroulement normal du programme
Lancer une exception
Propager une exception
Créer ses propres classes d'exception
Travaux Pratiques :
Mise en œuvre d'une gestion d'exception dans une application, en remplacement d'un code d'erreur
Les templates en C++
Principe des templates
Avantages/inconvénients
Syntaxe des templates de fonctions
Syntaxe des templates de classes
Instanciation des templates de fonctions
Instanciation des templates de classes
Travaux Pratiques :
Création d'un template de fonction
Création d'un template de classe
La bibliothèque STL
Présentation de la Standard Template Library
Les conteneurs
Les itérateurs
Les algorithmes
Les entrées-sorties
Travaux Pratiques :
Mise en œuvre de quelques conteneurs, d'algorithmes et template d'entrées-sorties