M2i Formation

Langage C++ - Programmation

Par M2i Formation

Objectifs

  • Programmer objet en C++
  • Maîtriser l'héritage et le polymorphisme
  • Connaître les types de fonctions dont les inline
  • Gérer la mémoire et les pointeurs
  • Utiliser la STL (Standard Template Library)
  • Surcharger des opérateurs.

Programme

Jour 1

C++ langage basé sur le C : rappels

  • Instructions, déclaration de variables, types et littéraux
  • Portée des variables
  • Les opérateurs et leurs priorités
  • Les conditions, opérateurs logiques
  • Les boucles, while, do while, for, break continue, goto
Exemples de travaux pratiques (à titre indicatif)
  • Création d'un premier programme sans classe
  • Utilisation des déclarations de variables et des types
  • Ajout des opérateurs principaux de C++
  • Ajout des structures de contrôle principales

Structure d'un programme

  • Le préprocesseur C / C++
  • Header et implémentation
  • Utilisation des constantes
  • Compilation conditionnelle
  • Déclaration anticipée (forward)
Exemples de travaux pratiques (à titre indicatif)
  • Travail sur les headers et implémentation en C++
  • Compréhension des phases de pré-compilation
  • Compilation de C++

Définition de fonctions

  • La stack
  • Appel d'une fonction
  • Passage par valeur ou par référence
  • Passage par pointeur
  • Pointeur sur fonction
Exemples de travaux pratiques (à titre indicatif)
  • Création d'un programme avec déclaration et utilisation multiple de fonctions
  • Modification des paramètres passés aux fonctions, par valeur et référence
  • Déduction des différences observées
  • Déclaration et utilisation de pointeurs sur fonctions

Jour 2

Les classes

  • Définition d'une classe
  • Gestion de l'encapsulation
  • Constructeur
  • Membres et fonctions statiques d'une classe
  • "this"
Exemples de travaux pratiques (à titre indicatif)
  • Création d'un projet incluant plusieurs classes développées
  • Encapsulation des données
  • Utilisation des constructeurs
  • Compréhension du "this" dans les méthodes de classe
  • Exploitation des membres et fonctions statiques

Jour 3

Gestion de la mémoire

  • Context Automatique, rappel sur la stack
  • Context Statique
  • Context Dynamique
  • Destructeur d'une classe
Exemples de travaux pratiques (à titre indicatif)
  • Création d'un nouveau projet sur la gestion mémoire
  • Heap et stack
  • Travail sur les destructeurs et constructeurs

Const

  • L'intérêt du "const"
  • Paramètres "const"
  • Fonctions membre "const"

Fonctions inline

  • Inline implicite
  • Inline explicite
  • Impact sur la compilation
  • Impact sur le code généré
Exemple de travaux pratiques (à titre indicatif)
  • Ajout et test de fonctions "inline" au projet

Jour 4

Héritage et polymorphisme

  • Héritage public de C++
  • Construction des classes dérivées
  • Utiliser la ZIM
  • Fonctions virtuelles
  • Fonctions virtuelles pures et classes de bases abstraites
  • Destruction des classes dérivées
Exemples de travaux pratiques (à titre indicatif)
  • Reprise du projet sur les classes
  • Ajout de niveaux d'héritage
  • Ajout de fonctions virtuelles et virtuelles pures
  • Ajout de classes abstraites

Surcharge d'opérateur

  • Opérateur de cast
  • Opérateur de pointeur
Exemple de travaux pratiques (à titre indicatif)
  • Sur un nouveau projet, ajout de la surcharge de plusieurs opérateurs et tests

Jour 5

Constructeur de copie et surcharge d'opérateur d'affectation

  • Surcharge
    • Du constructeur de copie
    • De l'opérateur d'affectation

La STL (Standard Template Library)

  • Les conteners
  • Les itérateurs
  • Les algorithmes
Exemple de travaux pratiques (à titre indicatif)
  • Projet exploitant les apports de la STL en C++

Gestion des exceptions

  • Les problématiques
  • Exception et références
  • Exception et valeurs
  • Exception et pointeurs
Exemple de travaux pratiques (à titre indicatif)
  • Ajout de la gestion des exceptions try-catch sur les divers projets réalisés
  • Récupération de ces exceptions

Certification (en option)

  • Prévoir l'achat de la certification en supplément
  • L'examen (en français) sera passé le dernier jour, à l'issue de la formation et s'effectuera en ligne
  • Il s'agit d'un QCM dont la durée moyenne est d'1h30 et dont le score obtenu attestera d'un niveau de compétence

Pédagogie

L'évaluation des acquis se fait :

  • En cours de formation, par des études de cas ou des travaux pratiques
  • Et, en fin de formation, par un questionnaire d'auto-évaluation ou une certification (M2i ou éditeur)

Formations de la même catégories (5)

M2i Formation
IoT - Développer des applications connectées avec C++ / QtPar M2i Formation
  • Développer en C++ / Qt5 dans un environnement connecté.
Orsys
C++ expert, les avancées du langage (de C++ 11 à 17)Par Orsys

Cette formation vous permettra d'assimiler les nouveautés introduites par les standards C++11, 14 et 17. Vous découvrirez les expressions lambda, exploiterez les possibilités de la programmation fonctionnelle, maîtriserez la gestion de la mémoire et exploiterez la bibliothèque standard C++.

Arkesys
C / C++ - Programmation avancée en C++Par Arkesys
  • Coder des applications efficaces et sécurisées en termes de gestion de la mémoire via les techniques RAII ;
  • Utiliser la librairie standard proposée par le langage C++ ;
  • Mettre en œuvre une application multitâches.
Global Knowledge
Programmation en langage CPar Global Knowledge

Cette formation intensive permet aux participants d'acquérir les compétences et connaissances nécessaires pour comprendre le fonctionnement des différents mécanismes, comprendre la mise en œuvre grâce à de nombreux exercices pratiques. Les participants seront en mesure d'écrire des programmes C robustes et portables.

SQLI Institut
Développer une application graphique en C++ avec QtPar SQLI Institut
  • Maîtriser le développement d'écrans avec Qt
  • Comprendre le mécanisme de la gestion d'évènements
  • Savoir utiliser les principales API non graphiques de Qt : accès aux données, réseau, fichiers
  • Maîtriser le développement en QML avec QtQuick