Aller au contenu principal

IB : 04. C++, programmation Objet

Organisme

IB
1 PLACE DE LA PYRAMIDE
92911 PARIS LA DEFENSE CEDEX
Voir toutes ses formationsAutres organismes proposant cette formation

Durée

35 heures

Modalités

Formation
  • Classe virtuelle
  • Présentiel
Évaluation

Une attestation de fin de formation sera remise au stagiaire à l'issue de la formation

Prix

Inter
La formation en Inter est dispensée pour un groupe de salariés d’entreprises différentes.
1543.5€ HT / personne
Intra
La formation en Intra est dispensée pour un groupe de salariés d’une seule et même entreprise.
6300€ HT / groupe
4 stagiaires minimum

Public

Développeurs, ingénieurs, chefs de projets proches du développement.

Pré-requis

Connaître les principes de la programmation orientée objet et disposer d’une expérience d’un langage de programmation…

Objectifs pédagogiques

- 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++ 11

Programme détaillé

1. INTRODUCTION A 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é

2. SYNTAXE ET MODÈLES 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)

3. 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)

4. ROBUSTESSE 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

5. 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)

6. 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

7. 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

 

LES PLUS DE LA FORMATION 

  • Une pédagogie efficace : l'alternance d'exposés théoriques et de mises en application immédiates à travers de nombreux travaux pratiques.
  • Les méthodes, bonnes pratiques et astuces pour tirer le meilleur parti de la programmation en C++ et développer ainsi des applications stables et performantes.
  • Répartition théorie/pratique : 45% / 55%
  • Cette formation se compose d’une alternance d’apports théoriques, de travaux pratiques, de démonstrations, de phases d’échanges entre participants et de synthèses de la part du formateur.

Sessions

Filtrer les résultats
Modalités pédagogiques
Formation synchrone se déroulant avec la présence physique du (des) formateur(s) et du (des) apprenant(s) réunis dans un même lieu de formation.
Formation combinant des séquences en présentiel et des séquences à distance synchrones ou asynchrones.
Formation à distance, asynchrone, s’appuyant sur une plateforme d’apprentissage, pouvant être complétée par d’autres modalités de formation à distance (visio-conférence…)
Formation à distance, synchrone, s’appuyant sur un dispositif de visio-conférence. La classe virtuelle recrée à distance les conditions d’une formation en salle traditionnelle.
Type de formation
La formation en Inter est dispensée pour un groupe de salariés d’entreprises différentes.
La formation en Intra est dispensée pour un groupe de salariés d’une seule et même entreprise.
Options
Les compétences professionnelles visées par la formation sont validées via un test permettant d’obtenir une certification officielle.
Ces sessions ne peuvent être ni annulées ni reportées par l’organisme de formation.