C++
Présentation
- Description :
- Le langage C++ est un langage objet permettant le développement d'applications à forte célérité
- Il est utilisé pour développer des application sous Windows, Linux, MacOsx, Linux embarqué
- Objectifs :
- Savoir développer en C++ sous Linux, Macintosh ou Windows
Public
- Public :
- Développeurs ou futurs développeurs informatiques
- Prérequis :
- Savoir développer en C
Organisation matérielle
- Durée : 3 jours (21 heures)
- Horaires : 9h00-12h00 13h00-17h00
- Rythme : Continue ou fragmentée
- Mode : Inter ou intra entreprise
- Lieu : Sur site ou en centre de formation
Environnement
- Moyens pédagogiques : Document de support de cours en PDF (259 pages) + document PDF correction d'exercices (18 exercices)
- Moyens techniques :
- PC sous Windows, Linux ou MacOsX en fonction des demandes
- Moyen humains : Développeur diplômé troisième cycle plus de dix ans d'expérience en développement et formation
Garanties qualités
- Contrôle de la bonne exécution : Fiche d'appréciation remplie par les stagiaires
- Méthode d'évaluation : Fiche d'évaluation
Programme
Introduction
Présentation
- Préambule
- Pages C++
- Définitions
- Usage
Différences avec le C
- Entrées et sorties simples
- Nouveautés par rapport au C
- Nouveaux Types
- Paramètres de fonctions par référence
Masquage et surcharge
- Paramètres par défaut
- Masquage d'attributs (de variables)
- Surcharge de fonctions
- Fonctions inline
- Appels de fonctions C
Objet
Structures et classes
- Les structures
- Les classes
- Déclaration dans un fichier .h
- Définition dans le fichier cpp
- Pointeur this
Déclarations et définitions
- Méthodes
- Organisation fréquente
- Organisation fréquente (suite)
- Méthode compacte
Les constructeurs
- Définitions des constructeurs
- Exemples d'utilisation
- Types de constructeurs
- Constructeur par copie
- Constructeurs par transtypage
Points clés
Initialiation de variables
- Initialisation de variables
- Usage du mot clé explicit
- Constructeurs à arguments multiples
Initialisation des constructeurs
- Liste d'initialisations
- Remarques sur les listes d'initialisation
- Liste d'initialisation avec constructeur
Constance
- Constance
- Variables statiques
- Variable statique utilité
- Méthodes statiques
- Autres types de classe de stockage
Héritage
Dérivation
- Dérivation
- Mise en œuvre
- Classe fille
- Déclaration de la classe fille
Encapsulation
- Héritage multiple
- Définition encapsulation
- Exemple : Mere
- Exemple : Fille
Cas d'école
- Particularité amusante
- Portée d'héritage
- Redéfinition vs surcharge
Méthodes virtuelles
Polymorphisme
- Présentation polymorphisme
- Méthodes virtuelles
- Contrainte sur les fonctions virtuelles
- Fonctions virtuelles pures et classes abstraites
Classes Friends
- Fonctions amis
- Classes amies
Opérateurs
- Surcharge des opérateurs
- Liste des opérateurs qui peuvent être surchargés
- Surcharge d'un opérateur par une fonction membre
- Surcharge d'un opérateur par une fonction non membre
- Surcharge de l'opérateur d'affectation `operator=`
- Opérateur de conversion vers un autre type
- Symétrie
Divers
Définition
- Les exceptions
- Exemple d'exception
- Remarques sur les exceptions
- Attraper une exception
- Exemple exception
- La classe exception et sa dérivée stdexcept
Nommage
- Espace de nommage
- Déclaration d'un nommage
- Utilisation d'un nommage
- Exemples connus
- Exclusion de méthodes d'un namespace
- Espace de nommage anonyme
Templates
Présentation
- Présentation des Templates
- Définition d'un type générique
- Définition de classes template
- Patrons de fonction
- Utilisation des templates
- Piège sur les pointeurs
- Patron de fonction à l'intérieur d'une classe
Plus loin
- Instanciation implicite et explicite
- Spécialisation
- Patrons de classe
- Exemple
- Template sur les opérateurs
- Performances
Foncteurs
- Foncteurs
- Itérateurs
- A quoi servent les foncteurs ?
- Cas d'utilisation
Programmation
Conseils
- Les singletons
- Méthode de déploiement
- Programmation robuste
RTTI
- Définition
- Exemple pratique
- Règles à respecter
- TypeId
Pointeurs intelligents
- Problématique des pointeurs
- Présentation des pointeurs intelligents
- unique_ptr
- Exemple de unique_pointer
- shared_ptr
- Exemple de shared pointer
- weak_ptr
- Avantages et inconvénients des pointeurs intelligents
La STL
Les types
- Présentation
- Les types de base (non STL)
- Les types de base : les entiers et les flottants (non STL)
- Les types de base : les string (std)
- Quelques utilisations des string
- Les conteneurs : vector (std)
- Quelques utilisations du vector
Conteneurs
- Les itérateurs
- Les itérateurs : exemple
- Quelques remarques complémentaires sur les itérateurs
- Les conteneurs : list (std)
- Quelques utilisations des List
- Conteneurs associatifs : Map
- Exemple de conteneur associatif Map
- Autres conteneurs
Algorithmes
- Algorithmes
- Fill : remplissage
- Swap : échange
- Copy : copie
- Rotate : réorganisation par rotation
- Opération sur les ensembles
- Exemple d'utilisation
Dates et tarifs
Inter entreprises
- Tarif : 1500 HT
- Dates : Consultez moi
Intra entreprise
- Région parisienne : 3900 HT
- Autres zones : 3900 HT + Frais de déplacement
- Dates : Consultez moi
Centres de formation partenaires
- Dates : Consultez moi