Formation C++ : Programmation objet en C++

4.8 sur 5 étoiles

5 étoiles
75%
4 étoiles
25%
3 étoiles
0%
2 étoiles
0%
1 étoile
0%
Voir les 16 avis
(16 avis)
Durée 5 jours
Niveau Intermédiaire
Classe à distance
Possible

Vous pouvez suivre cette formation en direct depuis votre domicile ou votre lieu de travail. Plus d'informations sur notre solution de classe à distance...

Référence DPOC
Éligible CPF Non

Apparu au début des années 1980 pour apporter au langage C la dimension objet tout en capitalisant sur ses performances, le langage C++ est encore aujourd’hui toujours très présent dans les projets de développement. Il a apporté de nombreuses améliorations au langage C comme le typage fort, la surcharge de fonctions, la programmation générique, les pointeurs intelligents et une très riche librairie STL (Standard Template Library) qui lui ont permis de maintenir sa popularité.

Cette formation C++ vous permettra de mettre en œuvre tous ces éléments en respectant la syntaxe, y compris celle de l’importante norme C++ 11, afin de livrer un code portable et sécurisé. Vous apprendrez à produire un code de qualité qui respecte les bonnes pratiques professionnelles en matière de conception et de développement objet.

Objectif opérationnel :

Concevoir et mettre en œuvre une application C++ performante selon une approche objet.

Objectifs pédagogiques :

À l'issue de cette formation C++, vous aurez acquis les connaissances et compétences nécessaires pour :

  • Concevoir l’architecture d’une application C++ en utilisant ses propres classes ou des classes existantes
  • Savoir programmer objet en C++ (classe, méthode, propriétés, constructeur, instance, etc.)
  • Maîtriser la syntaxe du C++
  • Maîtriser son environnement de développements (outils, compilation, build, etc.)
  • Connaître la norme C++ 11 et les nouveautés introduites par cette version et les suivantes

Public :

Ce cours C++ s’adresse prioritairement à un public technique comme les développeurs qui souhaitent développer ou maintenir des applications ou modules écrits en C++.
Elle intéressera plus particulièrement les développeurs dans les domaines cibles du C++ comme l’embarqué, le système, les IoT, la communication, etc. mais ne saurait s’y réduire tant les domaines d’application du C++ sont vastes et ses performances attractives pour tous les développeurs.

Cette formation peut aussi convenir à des ingénieurs maîtrisant déjà C ou C# et envisageant de se certifier prochainement sur le C++ via le CPP Institute.

Prérequis :

Cette formation C++ demande de savoir développer dans au moins un langage de programmation (C, PHP, Java, C#, Python, etc.) car la formation ne prévoit pas de revenir sur les bases (variables, test, boucle, appel fonction, etc.).
Concernant la dimension objet il est conseillé de disposer d’une culture objet sur les fondamentaux (classe, propriétés, méthodes, instance, héritage) et de ne pas totalement les découvrir même si la formation revient dessus la première demi-journée dans le cadre du C++.

J1

Les concepts de la Programmation objet essentiels pour bien commencer en C++

Les paradigmes de la P.O.O.
La classification
Contrôler l’accès aux données (encapsulation)
L'héritage, la dérivation
Fournir les informations essentielles (abstraction)
Travaux pratiques (à titre indicatif)Objectifs : Valider que les concepts objets fondamentaux sont maîtrisés par tout le monde 
 Présenter le modèle objet que l’on va utiliser en fil rouge dans la formation (il ne sera pas unique afin de bien comprendre les manipulations communes à toutes les classes et ce qui est spécifique à chacune)
Description : Quizz qui valide dans un premier temps que tout le monde dispose du vocabulaire objet, que ce vocabulaire est commun à tous participants et au formateur, mais aussi que tout le monde a compris en profondeur chaque concept.

C++, le langage

Les types de données, les variables, les constantes
Les tableaux
L’initialisation uniforme
Les opérateurs
Les pointeurs bruts 
Le type référence lvalue 
Les structures de contrôles
Les fonctions et la surcharge
Les expressions lambdas 
L'opérateur de résolution de portée
Les paramètres par défaut des fonctions
Les fonctions " inline "
Les espaces de noms
Les énumérations
Les structures, les unions, les champs de bits
Les compilations séparée et conditionnelle
Passage d’arguments
Les chaînes de caractères en C et en C++
Les alias avec using ou typedef
Travaux pratiques (à titre indicatif)Objectifs : Valider que tout le monde est à l’aise avec son environnement de développement et prend en main la syntaxe de base du C++ (opérateurs, types, tests, etc.).
Description : Réalisation du programme celcius.cpp qui demande la saisie au clavier d'une température en degrés Fahrenheit, puis calcule et affiche la température correspondante en degrés Celsius en interdisant les valeurs hors plage.
Création d’une expression lambda pour détection d’un palindrome.

Les classes en C++

Définition d'une classe
Les qualificateurs " public " et " private "
Instanciation d’une classe
La surcharge de méthodes
Les constructeurs par défaut
Les constructeurs surchargés
Le constructeur de copie
Surcharge de l'opérateur d'affectation
Le destructeur
Le mot-clé this
Les méthodes const
Les membres static
Les méthodes inline
Les fonctions amies
Surcharges d’opérateurs
Les fonctions amies
L’allocation dynamique de mémoire
Les mots-clés default et delete
Le mot-clé final sur classes ou méthodes
Travaux Pratiques (à titre indicatif)Objectifs : Maîtriser la création de classe, l’instanciation, les constructeurs et la surcharge des méthodes
Description : Création d’un classe « counter » permettant de créer un objet qui génère une séquence de nombres (incrémentation, valeur actuelle, affichage, etc.)
Surcharges du constructeur en y passant un nombre ou un objet (pour s’initialiser sur cet objet).
J3

Relations entre classe (association, composition, héritage)

Introduction aux diagrammes de classes UML2
Les associations entre classes : l’association directe, l'agrégation, la composition
Traduction en C++ d’une association, d’une composition
Importance de la liste d’initialisation dans les constructeurs
L'héritage public simple
Ordre d'exécution des constructeurs et destructeurs
Les règles de conversion
Le qualificateur d'accès protected
L'héritage multiple répété et ses difficultés de mise en œuvre
Manipulation d’objets dérivés
Travaux Pratiques (à titre indicatif)Objectifs : Comprendre comment mettre en œuvre une association directe, puis une composition entre classes. Savoir spécialiser une classe existante par héritage pour ne pas tout réécrire en maîtrisant l’impact hiérarchique dans la syntaxe (classe mère et descendance.)
Description : Mise en œuvre d'une relation d’association puis de composition entre deux classes. Construction d'une hiérarchie de classes à trois niveaux. Manipulation d'objets de ces classes. Mise en œuvre d'un héritage multiple répété

Le polymorphisme

Les méthodes virtuelles
Intérêt du polymorphisme
Mise en œuvre du polymorphisme
Les classes abstraites et les méthodes virtuelles pures
Les destructeurs virtuels
Travaux Pratiques (à titre indicatif)Objectifs : Comprendre comment mettre en œuvre une association directe, puis une composition entre classes. Savoir spécialiser une classe existante par héritage pour ne pas tout réécrire en maîtrisant l’impact hiérarchique dans la syntaxe (classe mère et descendance.) 
Description : Mise en œuvre du polymorphisme dans le Design Pattern Factory Method : obtenir un objet d’une sous-classe dans une hiérarchie de classes avec héritage multiple comportant une classe abstraite pure.
J4

La gestion des exceptions

Principe du traitement des anomalies
Utilisation des mot-clés try, catch et throw
Traiter les exceptions sur place
Propager les exceptions
Lever une exception
Créer ses propres classes d’exception
Le mot-clé noexcept
Travaux Pratiques (à titre indicatif)Objectifs : comprendre comment gérer les exceptions dans une application effectuant des entrées-sorties.
Description : Calcul de la somme des soldes mensuels d’un compte bancaire par lecture d’un fichier CSV avec mise en œuvre d’un traitement sur place d’exceptions puis en propageant les exceptions à la fonction appelante.

Les templates en C++

Principe des templates
Avantages/inconvénients
Paramètres template
Syntaxe des templates de fonctions
Surcharge de fonctions template
Syntaxe des templates de classes
Syntaxe des templates de méthodes
Instanciation des templates de fonctions
Instanciation des templates de classes
Instanciation implicite vs instanciation explicite
Spécialisation complète ou partielle d’un template
Travaux Pratiques (à titre indicatif)Objectifs : Comprendre et mettre en œuvre la généricité des types dans une fonction grâce aux templates.
Description : Création d'un template de fonction (fonction rendant le « plus petit » de 2 objets passés en argument indépendamment de leur type). Création d'un template de classe (tableau redimensionnable automatiquement).
J5

Les pointeurs intelligents (smart pointers C++11)

Principe de la gestion RAII des ressources
Danger des pointeurs bruts
Intérêt des smart pointers
Mise en œuvre de unique_ptr, shared_ptr, weak_ptr
Utilisation de make_unique et make_shared
Mise en œuvre d’un destructeur personnalisé
Travaux Pratiques (à titre indicatif)Objectifs : Comprendre la mise en œuvre des smart pointers pour la gestion des ressources
Description : Mise en oeuvre, dans une petite application, de la technique RAII par remplacement des pointeurs bruts par des pointeurs intelligents

Outils de développement

Présentation des IDE courants
Options de compilation
Cross-compilateurs
Génération d’un exécutable, fichiers objets
Utilisation des fonctionnalités de debug
Commande make et cmake sous Linux
Utilisation de git
Travaux Pratiques (à titre indicatif)Objectifs : Savoir debugguer une application et modifier les options de compilation. Savoir packager une application C++.
Description : Recherche de bugs dans une application et correction. Mise en œuvre d’une chaîne de build automatisée.

Aperçu de la librairie STL

Présentation, documentation
Les conteneurs
Les initializer_list
Les itérateurs
Les algorithmes
Les entrées-sorties
L’espace de noms chrono
Les entrées-sorties avec les manipulateurs
La manipulation des fichiers
Démonstration (à titre indicatif)Objectifs : comprendre l’intérêt d’un conteneur pour y stocker des objets et le rôle d’un itérateur. Savoir lire-écrire dans un fichier texte
Description : lecture d’un fichier texte ligne par ligne, création des objets représentés par les chaînes de caractères, mise en œuvre d’un vector pour y stocker les objets et parcours à l’aide d’un itérateur pour supprimer certains objets, tri du vector à l’aide d’un algorithme de tri et d’un foncteur

Présentation des principales nouveautés apportées par C++11/14/17/20

Le mot-clé constexpr
Principe des références rvalue, rôle de std ::move
Intérêt de la move semantics
Les concepts et contraintes
Les modules et partitions
Les coroutines
Le nouvel opérateur de comparaison
Le mot-clé consteval
Démonstration (à titre indicatif)Objectifs : comprendre l’intérêt des références rvalue, des expressions lambdas
Description : ajout, dans une classe, d’un constructeur et d’un opérateur d’affectation par déplacement utilisation d’une expression lambda dans un algorithme de tri

Les travaux pratiques sont conçus dans une approche pédagogique qui permet de valider les acquis en plus d’exemples concrets de mise en œuvre en C++. Les concepts importants sont donc toujours au cœur du TP et la trame de ces derniers fait office à la fois de synthèse réutilisable pour vos propres développements futurs mais aussi de révision lorsque vous vous replongerez dedans. Il s'agit d'une formation avec une grande part consacrée aux travaux dirigés (plus de 50% du cours).

Date de mise à jour du programme : 13/03/2023

Dates et lieux

Du 22 au 26 juillet 2024
Lieu
Distanciel
Durée
5 jrs
2690 € HT
Du 22 au 26 juillet 2024
Lieu
Paris
Durée
5 jrs
2690 € HT
Du 23 au 27 septembre 2024
Session garantie
Lieu
Distanciel
Durée
5 jrs
2690 € HT
Du 23 au 27 septembre 2024
Session garantie
Lieu
Paris
Durée
5 jrs
2690 € HT
Du 25 au 29 novembre 2024
Lieu
Distanciel
Durée
5 jrs
2690 € HT
Du 25 au 29 novembre 2024
Lieu
Paris
Durée
5 jrs
2690 € HT

Logo partenaire action collective de l'OPCO Atlas Votre formation C++ prise en charge jusqu'à 100% des coûts pédagogiques ! *

Depuis 2011, Atlas (ex-Fafiec) a sélectionné PLB Consultant pour vous proposer les meilleures formations autour du développement objet avec .NET, Java et C++.
-  Sessions inter-entreprise sur Paris et Lille.
-  Sessions intra-entreprise sur toute la France.

* jusqu'à 100% des coûts pédagogiques selon votre branche d'activité dans la limite des fonds mutualisés dédiés aux actions collectives et en application des critères de prise en charge en vigueur (cf conditions détaillées sur le site d'Atlas)

Avis des participants à la formation C++ : Programmation objet en C++

Note moyenne de 4.8/5(16)

Les avis figurant ci-dessous sont issus des fiches d’évaluation que remplissent les participants à la fin de la formation. Ils sont ensuite publiés automatiquement si les personnes ont explicitement accepté que nous les diffusions.

DUPUY Wesley
4/5

Mon avis sur le contenu du stage :

"Bien que le format de 35h l'exige. Le contenu est très dense et est devenu indigeste (pour ma part) après les premiers jours."

Mon avis sur le formateur :

"Animateur pédagogue, patient, bien veillant et qui connait son sujet. "

Ce que j'ai le plus apprécié :

"Des outils fonctionnels, simples à prendre en main et à utiliser. Environnement préparé à l'avance. Service technique réactif"

OJ
5/5

Mon avis sur le contenu du stage :

"J'ai beaucoup appréciée le temps suffisant alloué pour faire des travaux pratiques."

Mon avis sur le formateur :

"L'animateur était bien présent pendant la formation et prennez le temps nécessaire pour expliquer les concepts."

Ce que j'ai le plus apprécié :

"L'attention donné a chaque stagiaire."

MA
4/5

Mon avis sur le contenu du stage :

"Le temps pour effectuer les TPs étaient trop long, peut-être rajouter des exercices bonus pour ceux qui attendent les autres. "

Ce que j'ai le moins apprécié :

"Je pense qu'avoir les TPs déjà mise en place pour commencer l'exercice, il y a beaucoup de perte de temps en créant et en copiant les fichiers d'un exercice à l'autre."

HD
5/5

Mon avis sur le formateur :

"Très bonne animation, excellente écoute sur les questions et pas de défaut de réponses."

Ce que j'ai le plus apprécié :

"Bon partage d'écran et bon accès aux fichiers en temps réel."

BAGGA Amine
5/5

Mon avis sur le contenu du stage :

"Très accentué sur les principes de l'orienté objet"

Mon avis sur le formateur :

"Pédagogue, énorme maîtrise du C++ et de l'orienté objet, c'est un excellent formateur"

HEULHARD DE MONTIGNY Eric
5/5

Ce que j'ai le plus apprécié :

"Propreté et ergonomie des locaux"

Ce que j'ai le moins apprécié :

"Un détail : les saisies clavier et souris étaient parfois 'erratiques" avec sur mon ordinateur."

Sylvain
5/5

Mon avis sur le formateur :

"l'animateur est vraiment pédagogue et professionnel. les connaissances sont bien introduites et leurs assimilations sont bonnes."

Ce que j'ai le plus apprécié :

"environnement de travail."

PE
5/5

Mon avis sur le contenu du stage :

"Le contenu est conforme à mes attentes"

Mon avis sur le formateur :

"Bon ratio théorie/pratique/retour d'expérience"

SS
5/5

Mon avis sur le formateur :

"Excellent formateur, je le commanderais si l'occasion se présente."

MALTESE Dominique
4/5

Mon avis sur le formateur :

"maitrise très bien son sujet A l'écoute des stagiaires"

LJ
5/5

Mon avis sur le contenu du stage :

"Très bon professeur, support de cours et exercices."

FY
4/5

Mon avis sur la salle de formation :

"Dans nos locaux"

CY
5/5
Mon avis sur le formateur: Rappels faits le matin ont été très utiles
Gérard
5/5
CA
5/5
Dorian
5/5


Formations Informatique
et Management
en ligne à ce jour

+
Stagiaires dans nos salles
de cours sur
l'année

%
De participants satisfaits
ou très satisfaits de nos
formations


Formateurs experts
validés par
PLB