Formation C++
C++ est un langage de programmation impératif généraliste, qui a été développé à partir du langage de programmation C dans les années 1970. C++ est utilisé pour créer des applications de système, des applications de bureau, des jeux vidéo et d'autres types de logiciels. C++ se caractérise par une syntaxe basée sur le C, mais il ajoute de nouvelles fonctionnalités telles que la gestion de la mémoire, l'héritage, la surcharge des opérateurs et le polymorphisme. C++ est un langage de programmation à typage fort et statique, ce qui signifie que les types de données doivent être déclarés explicitement et ne peuvent pas être modifiés à l'exécution. C++ est souvent utilisé dans des situations où la performance est cruciale, car il permet aux développeurs de contrôler de manière fine la gestion de la mémoire et de l'exécution du code. C++ est également utilisé dans des situations où la sécurité est importante, car il offre un niveau élevé de contrôle sur le code exécuté. C++ est souvent utilisé dans des domaines tels que la robotique, la création de jeux vidéo, la programmation de systèmes d'exploitation et la programmation de matériel.
Objectifs pédagogiques
- Savoir écrire, compiler et déboguer des programmes orientés objets en C++ ANSI
- Savoir utiliser les pointeurs et les références
- Connaître les meilleures pratiques
- Savoir utiliser les outils de développement C++ (VisualStudio, Eclipse, GCC)
- Savoir utiliser les templates C++
- Utiliser les classes de la STL
Pré-requis
- Connaissance d’un langage de programmation
- La connaissance d’un langage objet est un plus
- La connaissance d’un langage proche syntaxiquement de C est un plus
Public
- Développeurs
- Chefs de projets
Programme
Jour 1
Introduction
- La programmation objet
- Evolution du langage C++
- Les environnements de développement
Rappels UML - principaux diagrammes pour le développeur
- Diagramme de classe
- Diagramme de séquence
- Diagramme d’état
- iagramme d’activité
C++ - la syntaxe
- Syntaxe de base
- Les mots clefs
- Les types
- Les fonctions
- Visibilité des variables
- Les tableaux
- Modèle mémoire
Jour 2
C++ - les pointeurs et les références
- Modèle mémoire
- Adresse d’une variable
- Pointeurs
- Référence
C++ - les classes
- Structures et classes
- Propriété
- Méthode
- Visibilité des membre de classe
- Constructeurs et destructeur
C++ - le polymorphisme
- L’héritage
- Fonctions virtuelles, virtuelles pures et classes abstraites
- Polymorphisme sur les pointeurs et les références
- Héritage multiple et héritage virtuel
- Rappels des constructeurs et des destructeurs
- Constructeur de copie
Jour 3
C++ - surcharges des opérateurs
- Règles de surcharge
- Appels de l’opérateur d’affectation entre instances de classes
- Surcharge dans la classe ou globale
- Fonctions amies, classes amies, méthodes amies
C++ - les exceptions
- Gestionnaire d’exception
- Levée d’exception
- Bloc try - catch
Jour 4
C++ - les templates
- Template de fonction
- Template de classe
- Héritage entre template
C++ - quelques notions avancées
- Les foncteurs
- Pointeur vers membres statiques d’une classe
- Pointeur vers membres non statique d’une classe
- Les espaces de nommage
Jour 5
C++ - présentation des bibliothèques standard
- Les bibliothèques standard
- La classe string
- Les flux en entrée-sortie
C++ - présentation de la STL
- Utilisation des templates dans la STL
- Les collections
- Utilisation de la STL
C++ - pour aller plus loin
- Responsabilité des classes
- Responsabilité du cycle de vie des instances
- Référencement des pointeurs
- Spécification de codage
- Utilisation de const
- Objets immuables
- Les opérateurs de cast
- Les ajouts de C++14
- Les expressions Lambda
- && : les rvalue references
- Sérialisation d’instance
Méthodes mobilisées
- Un formateur validé par nos équipes techniques et pédagogiques sera présent pendant toute la durée de la formation
- Pour les formations en présentiel, une salle de formation sera mise à disposition et équipée d'ordinateurs portables, d'un accès Wi-Fi, d'un projecteur et d'un tableau blanc. En distanciel la session sera suivie sur Zoom ou autre outil de visioconférence sur demande (Teams, Webex, Google Meet...).
- Un support de cours en version numérique sera remis à chaque participant
Modalités d’évaluation
- Questions orales ou écrites (QCM)
- Exercices pratiques
- Auto-positionnement en amont et aval de la formation