INFORMATIONS GÉNÉRALES :
OBJECTIFS ET COMPÉTENSES CLÉS DE LA FORMATION
- Compréhension des principes de la programmation C++
- Apprendre la programmation orientée Objet avec C++
- Être capable de développer en autonomie avec C++
PUBLIC CONCERNÉ
- Toutes personnes intéressées par apprendre la programmation orientée Objet avec C++ et de développer en autonomie.
PRÉ-REQUIS
- Toutes personnes ayant des connaissances C ou d’un langage proche
MODALITÉS D’ÉVALUATION ET VALIDATION
- Contrôle des connaissances acquises
- Attestation de stage
MODALITÉS DE DISPENSE
MODALITÉS DE LA FORMATION
- Apports théoriques, méthodologiques et étude de cas pratiques
- Mises en situation
- Boite à outils
- Moyens : vidéoprojecteur ou écran digital, salle, paperboard
CONTENU : C++ Initiation et perfectionnement
Introduction
1. Historique du C++
-
- Origines et évolution
- Principales versions et standardisation (C++98, C++03, C++11, C++14, C++17, C++20, C++23)
2. C par rapport au C++
-
- Différences et similitudes
- Transition de C à C++
- Avantages du C++ sur le C
3. C++ et les autres langages
-
- Comparaison avec Java, Python, etc.
- Cas d’utilisation spécifiques
4. Environnement et outils
-
- IDE et éditeurs de code (Visual Studio, CLion, Code::Blocks)
- Compilateurs (GCC, Clang, MSVC)
- Débogage et profiling (GDB, Valgrind)
Généralités et rappels
1. La compilation
-
- Processus de compilation (préprocesseur, compilation, assemblage, linkage)
- Gestion des dépendances (make, CMake)
2. Organisation d’une application en C++
-
- Structure des fichiers sources et en-têtes
- Utilisation des bibliothèques
3. Grammaire locale
-
- Variables, types de données, structures de contrôle (boucles, conditions)
- Fonction main
4. Fonctions standards d’E/S
-
- iostream (cin, cout, cerr)
- Manipulation de fichiers
Spécificités du C++
1. Formats d’affichage
-
- Manipulateurs de flux (std::setw, std::setprecision)
2. Définition et utilisation des variables
-
- Types principaux (int, float, double, char, bool)
- Environnement d’exécution et gestion de la mémoire
- Constantes typées (const, constexpr)
3. Arithmétique et opérations diverses
-
- Opérations mathématiques et logiques
- Conditions et opérateurs ternaires
4. Structures conditionnelles
-
- if, else if, else
- switch et case
5. Boucles et traitement de données multiples
-
- Boucles for, while, do-while
- Itération sur des conteneurs
6. Transtypage
-
- Casts en C++ (static_cast, dynamic_cast, const_cast, reinterpret_cast)
7. Tableaux
-
- Déclaration et manipulation de tableaux
- Tableaux dynamiques (std::vector)
8. Pointeurs et références
-
- Pointeurs, allocation dynamique (new, delete)
- Références et leur utilisation
9. Enumérations
-
- Enums classiques et enum class
Les fonctions
1. Prototypage et définition
2. Surcharge de fonctions
-
- Fonctionnalité et exemples
3. Fonctions inline et récursivité
-
- Avantages et inconvénients
- Cas d’utilisation
4. Arguments et paramètres
-
- Passage par valeur, par adresse, par référence
- Valeurs de retour
5. Organisation des fichiers sources
-
- Fichiers .h et .cpp
- Inclusion guard (#ifndef, #define, #endif)
Les structures – introduction à la Programmation Orientée Objet (POO)
1. Définition et utilisation
2. Déclaration de méthodes
-
- Méthodes membres et statiques
3. Variables de structure et utilisation dans les fonctions
-
- Passage de structures comme arguments
4. Mot clé « mutable »
-
- Utilisation et implications
Programmation Orientée Objet (POO)
1. Apports de l’objet sur le procédural
-
- Concepts de base (encapsulation, héritage, polymorphisme)
2. Définition et utilisation de classes
-
- Constructeurs, destructeurs, méthodes
- Attributs et méthodes d’instances
3. Relations entre classes
-
- Agrégation, composition, héritage
4. Encapsulation des données
-
- Accesseurs et mutateurs (getters et setters)
5. Fonctions et classes amies
-
- Utilisation du mot clé friend
6. Héritage multiple
-
- Possibilités, problèmes et solutions
7. Polymorphisme et abstraction des classes
-
- Classes abstraites et interfaces
- Polymorphisme dynamique
8. Surcharge des opérateurs
Programmation générique (Templates)
1. Intérêt et utilisation
-
- Quand utiliser des templates
2. Templates de fonction et de classe
3. Instanciation de templates
-
- Compilation et utilisation
Les espaces de nommage en C++
1. Définition et utilisation
-
- namespace et alias de namespace
2. Directives using et using namespace
-
- Bonnes pratiques et pièges à éviter