Formation C++ : Programmation objet en C++

Public admis

  • Salarié en Poste
  • Demandeur d'emploi
  • Entreprise
  • Etudiant

Financements

Eligible CPF Votre OPCO Financement personnel

Objectifs de la formation

À 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

PLB CONSULTANT


Informatique et Management
Voir la fiche entreprise

Tarif

A partir de 2 690,00 €

Durée 5 jours (35h)
Modes
  • Centre
  • Entreprise
  • Distance
Sessions
Lieux Partout en France

PLB CONSULTANT


Informatique et Management
Voir la fiche

Tarif

A partir de 2 690,00 €

Durée 5 jours (35h)
Modes
  • Centre
  • Entreprise
  • Distance
Sessions
Lieux Partout en France

Description

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.

Programme

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

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

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.

Ces formations pourraient vous intéresser

Objectifs de la formation

Construire le business plan d'un projet
Arbitrer et valider les hypothèses et prévisions
Maîtriser les outils d'aide à la mise en œuvre du business plan



Tarif

A partir de 2 090,00 €

Durée

3 jours - 21 heures

Modes
  • Entreprise

Objectifs de la formation

  • Pendant la formation, le formateur évalue la progression pédagogique des participants via des QCM, des mises en situation et des travaux pratiques. Les participants passent un test de positionnement avant et après la formation pour valider leurs compétences acquises.
Tarif

Contacter l'organisme

Durée

2 jours (14 heures)

Modes
  • Entreprise
  • Distance
  • Centre

Habilitation électrique BE Essai

Proposé par GROUPE LEXOM

Objectifs de la formation

  • Réaliser en toute sécurité des interventions sur les équipements électroniques en plateforme d'essais ou laboratoire en basse
  • Gérer et appliquer la réglementation selon la norme NF C 18-510
Tarif

A partir de 1 390,00 €

Durée

3j / 21h

Modes
  • Centre
  • Entreprise
  • Distance

Objectifs de la formation

À l'issue de cette formation Architecture DevOps Complète, vous aurez acquis les connaissances et compétences nécessaires pour :

  • Comprendre la problématique d’industrialisation des déploiements et du provisionnement d’infrastructures ainsi que le vocabulaire associé (devops, build, intégration/livraison et déploiement continu, monitoring, scalabilité, …)
  • Connaître les distinctions entre les solutions de Cloud, la virtualisation et la containerisation
  • Gérer les sources d’un projet avec Git
  • Construire un logiciel (build, dépôt, nexus, …)
  • Mettre en œuvre un pipeline CI/CD avec GitLab pour simplifier la mise à jour de son application
  • Intégrer les tests dans le déploiement (Unitaire/intégration, Fonctionnels, Sécurité, Qualité)
  • Créer et gérer des conteneurs Docker
  • Virtualiser et gérer la configuration (vagrant, terraform, chef, puppet, …)
  • Orchestrer ses conteneurs avec Kubernetes
  • Intégrer GitLab et Kubernetes
  • Adapter les ressources de ses applications (scalabilité)
  • Savoir utiliser ElasticStack pour surveiller ses applications
  • Comprendre les architectures modernes (micro services, API Rest, file de messages avec Kafka, etc.) et comment elles sont mises en œuvre concrètement
  • Utiliser des solutions Cloud pour disposer d’une infrastructure sécurisée (IaaS, firewall, certificats TLS/SSL, …)
  • Déployer son application dans des conteneurs sur le Cloud au sein d’un cluster Kubernetes pour une mise à l’échelle automatique en fonction des sollicitations
  • Déployer son application en Serverless
  • Aller plus loin avec Kubernetes (installation, stockage, déploiement, cloud, monitoring, helm)
Tarif

A partir de 5 990,00 €

Durée

10j / 70h

Modes
  • Centre
  • Entreprise
  • Distance

Objectifs de la formation

  • Réaliser des dessins et esquisses 3D avec ZWCAD
  • Connaître les généralités du logiciel, savoir sélectionner des objets
  • Maîtriser l'aide au dessin, gérer les calques, les fonctions de dessin et de modification
  • Savoir créer du texte, utiliser les commandes de cotation
  • Gérer les blocs et attributs, l'espace objet et l'espace papier
  • Créer et imprimer des documents
  • Gérer les échanges
Tarif

A partir de 1 500,00 €

Durée

3 jours

Modes
  • Centre
  • Entreprise
  • Distance

Objectifs de la formation

À l'issue de cette formation Business Objects Univers Design Tool, vous aurez acquis les connaissances et compétences nécessaires pour : 

  • Maîtriser l’architecture et le rôle du designer d’univers
  • Créer la structure et les objets d’un univers
  • Mettre en œuvre les fonctions et l’organisation optimale d’un univers : listes de valeurs, tables d’agrégat, les jointures…
Tarif

A partir de 1 950,00 €

Durée

3j / 21h

Modes
  • Centre
  • Entreprise
  • Distance

Objectifs de la formation

  • Pendant la formation, le formateur évalue la progression pédagogique des participants via des QCM, des mises en situation et des travaux pratiques. Les participants passent un test de positionnement avant et après la formation pour valider leurs compétences acquises.
Tarif

Contacter l'organisme

Durée

3 jours (21 heures)

Modes
  • Entreprise
  • Distance
  • Centre

Formation La Programmation JSF 2

Proposé par PLB CONSULTANT

Objectifs de la formation

A l'issue de cette formation Programmation JSF 2 vous aurez acquis les connaissances et compétences nécessaires pour : 

  • Savoir cerner les apports de ce standard. 
  • Savoir élaborer une application complète grâce à une alternance de présentation et de travaux pratiques
  • Savoir bien juger les réponses apporteés par JSF
Tarif

A partir de 1 995,00 €

Durée

3j / 21h

Modes
  • Centre
  • Entreprise
  • Distance

Objectifs de la formation

À l'issue de cette formation Dialoguer avec les développeurs vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Connaître les phases de développement d’une application
  • Décrire les différents outils utilisés par les développeurs et leur environnement de travail
  • Savoir classer les langages et les technologies par famille (backend, frontend, base de données, etc.)
  • Comprendre comment un développeur gère les données dans une application
  • Connaître les architectures des applications et le vocabulaire associé
Tarif

A partir de 1 480,00 €

Durée

2j / 14h

Modes
  • Centre
  • Entreprise
  • Distance

Objectifs de la formation

  • Etre habilitable au niveau BEL Expert
  • Connaitre la règlementation en matière d'électricité sur véhicules électriques (norme NF C 18-550)
  • Savoir évoluer dans un environnement électrique
  • Savoir rendre compte de l'opération réalisée
  • Maitriser la manipulation de matériel dans un environnement électrique
  • Appliquer les consignes de sécurité prévues par la norme NF C 18 550
Tarif

A partir de 1 390,00 €

Durée

1j / 7h

Modes
  • Centre
  • Entreprise
  • Distance

Je cherche à faire...