Organisme de Formation aux technologies et métiers de L'informatique
c-plus-plus

Formation C++ - Programmation Objet

Mettre en œuvre les principes fondamentaux de la conception orientée objet et de concevoir des applications en C++

Informations générales

LNG200
5 jours (35h)
3 090 €HT

Objectifs

Après ce cours, vous serez capable de :

  • Appliquer les principes de la Conception Orientée Objet
  • Maîtriser la syntaxe du langage C++
  • Concevoir des applications C++ utilisant des classes
  • Utiliser les outils de développement associés au langage C++
  • Maîtriser les ajouts majeurs de la norme C++

Public

Ce cours s'adresse avant tout aux personnes suivantes :

  • Développeurs Ingénieurs Chefs de projets proches du développement

Prérequis

Pour suivre ce cours, vous devez déjà posséder les connaissances suivantes :

  • Connaître les principes de la programmation orientée objet Disposer d'une expérience d'un langage de programmation

Programme de la formation

C++ est un langage de choix pour réaliser des applications évolutives, robustes et efficaces. Cette performance a cependant un prix : elle suppose de la part du développeur une réelle maîtrise, tant au niveau de la syntaxe que des concepts sous-jacents tels que les modèles mémoire, l'orientation objet ou encore la généricité. Cette formation permettra aux participants d'appréhender les principes fondamentaux de la conception objet et de les appliquer de façon effective en C++.

Introduction à la conception orientée objet

  • Les paradigmes de développement : procédural, objet, fonctionnel, déclaratif
  • Principes de conception objet : Abstraction, Encapsulation, Héritage et Polymorphisme
  • Généricité

Syntaxe et modèle de C++

  • Point d'entrée d'une application
  • Utilisation de la console, objets d'entrée/sortie : streams
  • Typologie des données et initialisation uniforme : C++11)
  • Inférence automatique des types avec le spécificateur auto : C++11
  • Les structures de contrôle de flux : if, switch, for, while et leurs améliorations : C++17/20
  • Les énumérations et leurs nouveautés : C++11/20)
  • Fonctions, paramètres et spécificateurs
  • Les fonctions lambda : C++11/14/17
  • Fonctions inline et fonctions constexpr : C++11 à C++20
  • Les tableaux et la classe std::array : C++11
  • Introduction à la bibliothèque standard
  • Les modèles mémoire : Data segment, Heap, Stack
  • Constantes, pointeurs et références.
  • La classe std::string
  • Allocation et désallocation dynamiques
  • Allocation et désallocation dynamiques Les espaces de noms : namespaces
  • Organisation du code au sein d'un projet : fichiers d'entête et fichiers d'implémentation

Les concepts objet appliqués au C++

  • Classes, instances, cycle de vie et cinématique d'un objet
  • Éléments de notation UML : modélisation statique et dynamique
  • Encapsulation et visibilité : public-private-protected
  • Méthodes, constructeurs, destructeurs
  • La zone d'initialisation des membres : ZIM
  • Fonctions et classes amies : friendship
  • Surcharge : overloading des méthodes et opérateurs
  • Membres de classe : ou statiques
  • Mise en oeuvre des relations : agrégation / composition
  • Robustesse via les spécificateurs de déclaration : default, delete, override, final de C++11
  • Héritage, classes abstraites et concrètes
  • Polymorphisme et interfaces
  • Destructeur virtuel
  • Héritage privé et protégé
  • Clonage d'objets : construction par recopie / opérateur d'affectation

Robustesse dynamique et traitement des exceptions

  • Prise en compte des erreurs avec les assertions et les exceptions
  • Lancement : throw, propagation et interception d'une exception via un gestionnaire : bloc try/catch
  • Conception d'une classe d'exception personnalisée
  • Contrôle dynamique d'une exception avec la clause noexcept de C++11

Points clés de la Standard Template Library (STL)

  • Présentation des principaux conteneurs : vector, list, set, map, deque et des critères de choix
  • Insertion efficace via l'emplacement : C++11
  • Les itérateurs
  • Les algorithmes génériques et leurs nouveautés : C++17/20)

Généricité - Templates

  • Définitions de patrons de fonctions et de classes génériques, syntaxe et instanciation
  • Spécialisation générique
  • Polymorphisme statique versus polymorphisme dynamique
  • Introduction à la métaprogrammation

Qualité logicielle et tests d'applications

  • Les best practices en C++
  • Idiomes et règles de conception
  • Introduction aux design patterns
  • Le développement guidé par les tests : TDD – Test Driven Development
  • Présentation succincte de GoogleTest
plus d'infos

Méthode pédagogique

Chaque participant travaille sur un poste informatique qui lui est dédié. Un support de cours lui est remis soit en début soit en fin de cours. La théorie est complétée par des cas pratiques ou exercices corrigés et discutés avec le formateur. Le formateur projette une présentation pour animer la formation et reste disponible pour répondre à toutes les questions.

Méthode d'évaluation

Tout au long de la formation, les exercices et mises en situation permettent de valider et contrôler les acquis du stagiaire. En fin de formation, le stagiaire complète un QCM d'auto-évaluation.

Suivre cette formation à distance

  • Un ordinateur avec webcam, micro, haut-parleur et un navigateur (de préférence Chrome ou Firefox). Un casque n'est pas nécessaire suivant l'environnement.
  • Une connexion Internet de type ADSL ou supérieure. Attention, une connexion Internet ne permettant pas, par exemple, de recevoir la télévision par Internet, ne sera pas suffisante, cela engendrera des déconnexions intempestives du stagiaire et dérangera toute la classe.
  • Privilégier une connexion filaire plutôt que le Wifi.
  • Avoir accès au poste depuis lequel vous suivrez le cours à distance au moins 2 jours avant la formation pour effectuer les tests de connexion préalables.
  • Votre numéro de téléphone portable (pour l'envoi du mot de passe d'accès aux supports de cours et pour une messagerie instantanée autre que celle intégrée à la classe virtuelle).
  • Selon la formation, une configuration spécifique de votre machine peut être attendue, merci de nous contacter.
  • Pour les formations incluant le passage d'une certification la dernière journée, un voucher vous est fourni pour passer l'examen en ligne.
  • Pour les formations logiciel (Adobe, Microsoft Office...), il est nécessaire d'avoir le logiciel installé sur votre machine, nous ne fournissons pas de licence ou de version test.
  • Horaires identiques au présentiel.

Mis à jour le 03/12/2025
Le contenu peut faire l'objet de légères adaptations selon les besoins et la progression des participants.