Objectifs
Langage Objet de référence bien avant l'avènement des langages tels que Java ou C#, le C++ a été le promoteur de cette nouvelle approche de la conception et du développement.
Cette formation C++ aborde l'acquisition des concepts Objet et la maîtrise du langage de développement. Cette formation C++ permettra aux participants de concevoir des applications C++ utilisant des classes, de devenir architectes de classes et de créer leur propre architecture.
A qui s'adresse cette formation
Public :
Cette formation C++ s'adresse aux développeurs d'applications.
Prérequis :
Pour suivre ce cours, les participants doivent disposer des connaissances et compétences acquises en suivant la formation Langage C.
Contenu du cours
Les concepts de la Programmation objet essentiels pour bien commencer en C++
Les paradigmes de la P.O.O.
La classification
L'encapsulation
L'agrégation, la composition de classes
L'héritage, la dérivation, la sous-classification
L'abstraction
Introduction aux diagrammes de classes UML
C++, le langage
Les types de données, les opérateurs
Le type référence et les pointeurs
Les structures de contrôles
Les fonctions et la surcharge
L'opérateur de résolution de portée
Liaison C - C++
Les paramètres par défaut des fonctions
Les fonctions " inline "
Travaux Pratiques :
Exécution d'exemples pédagogiques illustrant les concepts présentés
Les classes en C++
Définition d'une classe
Les qualificateurs " public " et " private "
Les constructeurs par défaut
Les constructeurs surchargés
Le constructeur de copie
Surcharge de l'opérateur d'affectation
Le destructeur
Les méthodes const
Les membres static
Travaux Pratiques :
Développement de quelques classes simples
La composition en C++
Principe
Ordre d'appel des constructeurs et destructeurs
La liste d'initialisation de constructeur
Travaux Pratiques :
Mise en œuvre d'une relation de composition entre deux classes
L'héritage, la dérivation
L'héritage public simple
Ordre d'exécution des constructeurs et destructeurs
Les règles de conversion
Le qualificateur d'accès protected
L'héritage privé
L'héritage multiple répété et ses difficultés de mise en oeuvre
Travaux Pratiques :
Construction d'une hiérarchie de classes à trois niveaux
Manipulation d'objets de ces classes
Mise en œuvre d'un héritage multiple répété
Le polymorphisme
Les méthodes virtuelles
Le mécanisme du polymorphisme
Mise en œuvre du polymorphisme
Les classes abstraites et les fonctions virtuelles pures
Les destructeurs virtuels
Travaux Pratiques :
Mise en œuvre du polymorphisme dans une hiérarchie de classes comportant une classe abstraite
La gestion des exceptions
Principe du traitement des anomalies
Utilisation des mot-clés try, catch et throw
Traiter une exception
Lever une exception
Propager une exception
Travaux Pratiques :
Mise en œuvre d'une gestion d'exception dans une application effectuant des entrées-sorties
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
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