L'essentiel de C++ et la conception objet
Référence : ECOD
Durée : 5 jours (35 heures)
Le C++ est un langage de programmation extraordinairement puissant reposant sur la syntaxe délicate du C tout en lui apportant les concepts essentiels de l'approche objet. Une entreprise cherchant à former au C++ ses développeurs, trouvera dans cette formation une démarche pédagogique itérative avec un apprentissage "just-in-time" des aspects délicats de ce langage.
À l'issue de ce cours, vous aurez non seulement acquis une expérience réellement pratique de la syntaxe et de l'utilisation d'outils C++, mais, et c'est encore plus important, vous saurez concevoir et développer en C++ des systèmes robustes et évolutifs. Vous saurez également comment utiliser quelques Design Patterns fondamentaux, outils essentiels pour la consolidation des acquis en matière d'analyse et de conception orientées objet et pour l'amélioration de l'architecture de vos systèmes.
Travaux pratiques :
Les trois-quarts du cours sont consacrés à des travaux pratiques ciblés et incrémentaux facilitant l'assimilation des concepts et techniques appris. Une étude de cas sera réalisée pour appliquer les concepts orientés objet au niveau de l'analyse, de la conception et de la programmation en C++.
Vous allez apprendre à :
- Découvrir ou consolider les éléments syntaxiques du C
- Définir et gérer des fichiers pour les projets C++
- Concevoir et développer des classes C++
- Utiliser les outils de développement pour bâtir et déboguer rapidement une application
- Développer par agrégation et par extension
- Concevoir des applications ouvertes en utilisant le polymorphisme et les fonctions virtuelles
- Utiliser les classes collection des bibliothèques STL et Boost
- Gérer la mémoire dynamique afin d'éviter les fuites et les erreurs de mémoire
- Maîtriser le mécanisme de gestion des exceptions
- Aborder la programmation générique
Méthode pédagogique :
75% de travaux pratiques
Audience :
Développeurs souhaitant créer des applications avec C++, Développeurs C désirant passer au C++
Pré-requis :
- Maîtrise d'un langage de programmation de haut niveau
Programme :
- Du C au C++
- Syntaxe
- Variables, constantes
- Pointeurs et références
- Tableaux
- Fonctions, paramètres par défaut
- Gestion de la mémoire
- Pile, stockage libre et mémoire statique
- Opérateurs new et delete
- Organisation du code
- En-tête et fichiers source
- Organisation des fichiers
- #include
- Les namespaces
- Concepts objet
- Classe et instance
- Membres de données et de fonctions (méthodes)
- Déclaration et définition de classes
- Le paramètre implicite "this"
- Encapsulation
- Constructeurs et destructeurs
- Polymorphisme statique (surcharge)
- Composition (Containment)
- Déclaration de membres objets
- La zone d'initialisation des membres
- Ordre de construction
- Contrôle des accès
- Sûreté avec const
- Mot-clé const et membres de données
- Méthodes const et paramètres
- Classes utilitaires de la STL
- La classe string
- Les conteneurs et itérateurs
- Classification, héritage et polymorphisme
- Classes de base et classes dérivées
- Hiérarchies de types et de classes
- Redéfinition de méthodes
- Liaison statique et dynamique
- Polymorphisme dynamique grâce aux fonctions virtuelles
- Appel de constructeurs de classes de base
- Surcharge des opérateurs essentiels
- Opérateur =
- Constructeur de copie
- Opérateur[]
- Opérateurs >
- Sujets spécifiques
- Données membres statiques
- Fonctions membres statiques
- Fonctions inline
- Gestion des exceptions
- Définition et mécanisme
- Délimiter (try), lever (throw) et attraper (catch) une exception
- La clause "throws"
- catch(...)
- Introduction aux templates
- Fonctions templates
- Classes templates