Aperçu du cours
Objectif de formation : Apporter les connaissances nécessaires pour consolider des notions de bases du langage C++
Prérequis
- Avoir des bases en programmation C++
Objectifs pédagogiques
- Améliorer les connaissances sur la syntaxe basique de C++
- Implémenter l'héritage & le polymorphisme
- Concevoir des pointeurs intelligents
- Administrer les exceptions dans C++
- Comprendre et bâtir des templates en C++
- Décrire et implémenter la bibliothèque STL
Public ciblé
- Développeurs
- Chefs de projets techniques
Programme de formation
-
Rappels sur la syntaxe de base
-
Conception de tableaux
-
Anatomie d’une classe
-
Spécificateurs d’accès private et public
-
Conception d’objets
-
Constructeurs, méthodes d’instance, méthodes static
-
Surcharge de fonctions & de méthodes
-
Configuration par défaut
-
Passage d’arguments aux fonctions et aux méthodes: par valeur, par adresse, par référence
-
Constructeur de copie
-
Surcharge de l’opérateur d’affectation
-
Destructeur
-
Méthodes const
-
Membres static
-
Travaux Pratiques : conception de quelques classes avec constructeurs et méthodes surchargés puis manipulation d’instances de ces classes
-
-
Implémentation 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
-
Tour d’horizon des types d’héritage
-
Utilisation des classes abstraites
-
Déclaration de méthodes virtuelles & virtuelles pures
-
Développement du code avec polymorphisme, redéfinition des méthodes
-
Implémentation de l’héritage multiple
-
Travaux Pratiques : parcours d’une hiérarchie d’objets sans, puis avec polymorphisme
-
-
Smart pointers C++11
-
Risques des pointeurs nus
-
Concepts de la gestion de ressources
-
Rôles des smart pointers
-
Causes de l’obsolescence de auto_ptr
-
Implémentation de unique_ptr & shared_ptr
-
Travaux Pratiques : Mise en place de smart pointeurs
-
-
Administration des exceptions
-
Description des forces de la gestion d’exceptions
-
Création d’un bloc try-catch & détermination de la modification du déroulement normalement du programme
-
Démarrage d’une exception
-
Propagation d’une exception
-
Concevoir ses propres classes d’exception
-
Travaux Pratiques : Implémentation d’une gestion d’exception dans une application
-
-
Templates en C++
-
Principe des templates
-
Forces & faiblesses
-
Syntaxe des templates de fonctions
-
Syntaxe des templates de classes
-
Instanciation des templates de fonctions
-
Instanciation des templates de classes
-
Travaux Pratiques : Conception d’un template de fonction puis conception d’un template de classe
-
-
Bibliothèque STL
-
Introduction à la Standard Template Library
-
Conteneurs
-
Itérateurs
-
Algorithmes
-
Entrées-sorties
-
Travaux Pratiques : implémentation de plusieurs conteneurs, algorithmes et templates d’entrées-sorties
-