C++

Présentation

  • Description :
    • Le langage C++ est un langage objet permettant le développement d'applications à forte célérité
    • Il est utilisé pour développer des application sous Windows, Linux, MacOsx, Linux embarqué
  • Objectifs :
    • Savoir développer en C++ sous Linux, Macintosh ou Windows

Public

  • Public :
    • Développeurs ou futurs développeurs informatiques
  • Prérequis :
    • Savoir développer en C

Organisation matérielle

  • Durée : 3 jours (21 heures)
  • Horaires : 9h00-12h00 13h00-17h00
  • Rythme : Continue ou fragmentée
  • Mode : Inter ou intra entreprise
  • Lieu : Sur site ou en centre de formation

Environnement

  • Moyens pédagogiques : Document de support de cours en PDF (259 pages) + document PDF correction d'exercices (18 exercices)
  • Moyens techniques :
    • PC sous Windows, Linux ou MacOsX en fonction des demandes
  • Moyen humains : Développeur diplômé troisième cycle plus de dix ans d'expérience en développement et formation

Garanties qualités

  • Contrôle de la bonne exécution : Fiche d'appréciation remplie par les stagiaires
  • Méthode d'évaluation : Fiche d'évaluation

Programme

Introduction

Présentation

  • Préambule
  • Pages C++
  • Définitions
  • Usage

Différences avec le C

  • Entrées et sorties simples
  • Nouveautés par rapport au C
  • Nouveaux Types
  • Paramètres de fonctions par référence

Masquage et surcharge

  • Paramètres par défaut
  • Masquage d'attributs (de variables)
  • Surcharge de fonctions
  • Fonctions inline
  • Appels de fonctions C

Objet

Structures et classes

  • Les structures
  • Les classes
  • Déclaration dans un fichier .h
  • Définition dans le fichier cpp
  • Pointeur this

Déclarations et définitions

  • Méthodes
  • Organisation fréquente
  • Organisation fréquente (suite)
  • Méthode compacte

Les constructeurs

  • Définitions des constructeurs
  • Exemples d'utilisation
  • Types de constructeurs
  • Constructeur par copie
  • Constructeurs par transtypage

Points clés

Initialiation de variables

  • Initialisation de variables
  • Usage du mot clé explicit
  • Constructeurs à arguments multiples

Initialisation des constructeurs

  • Liste d'initialisations
  • Remarques sur les listes d'initialisation
  • Liste d'initialisation avec constructeur

Constance

  • Constance
  • Variables statiques
  • Variable statique utilité
  • Méthodes statiques
  • Autres types de classe de stockage

Héritage

Dérivation

  • Dérivation
  • Mise en œuvre
  • Classe fille
  • Déclaration de la classe fille

Encapsulation

  • Héritage multiple
  • Définition encapsulation
  • Exemple : Mere
  • Exemple : Fille

Cas d'école

  • Particularité amusante
  • Portée d'héritage
  • Redéfinition vs surcharge

Méthodes virtuelles

Polymorphisme

  • Présentation polymorphisme
  • Méthodes virtuelles
  • Contrainte sur les fonctions virtuelles
  • Fonctions virtuelles pures et classes abstraites

Classes Friends

  • Fonctions amis
  • Classes amies

Opérateurs

  • Surcharge des opérateurs
  • Liste des opérateurs qui peuvent être surchargés
  • Surcharge d'un opérateur par une fonction membre
  • Surcharge d'un opérateur par une fonction non membre
  • Surcharge de l'opérateur d'affectation `operator=`
  • Opérateur de conversion vers un autre type
  • Symétrie

Divers

Définition

  • Les exceptions
  • Exemple d'exception
  • Remarques sur les exceptions
  • Attraper une exception
  • Exemple exception
  • La classe exception et sa dérivée stdexcept

Nommage

  • Espace de nommage
  • Déclaration d'un nommage
  • Utilisation d'un nommage
  • Exemples connus
  • Exclusion de méthodes d'un namespace
  • Espace de nommage anonyme

Templates

Présentation

  • Présentation des Templates
  • Définition d'un type générique
  • Définition de classes template
  • Patrons de fonction
  • Utilisation des templates
  • Piège sur les pointeurs
  • Patron de fonction à l'intérieur d'une classe

Plus loin

  • Instanciation implicite et explicite
  • Spécialisation
  • Patrons de classe
  • Exemple
  • Template sur les opérateurs
  • Performances

Foncteurs

  • Foncteurs
  • Itérateurs
  • A quoi servent les foncteurs ?
  • Cas d'utilisation

Programmation

Conseils

  • Les singletons
  • Méthode de déploiement
  • Programmation robuste

RTTI

  • Définition
  • Exemple pratique
  • Règles à respecter
  • TypeId

Pointeurs intelligents

  • Problématique des pointeurs
  • Présentation des pointeurs intelligents
  • unique_ptr
  • Exemple de unique_pointer
  • shared_ptr
  • Exemple de shared pointer
  • weak_ptr
  • Avantages et inconvénients des pointeurs intelligents

La STL

Les types

  • Présentation
  • Les types de base (non STL)
  • Les types de base : les entiers et les flottants (non STL)
  • Les types de base : les string (std)
  • Quelques utilisations des string
  • Les conteneurs : vector (std)
  • Quelques utilisations du vector

Conteneurs

  • Les itérateurs
  • Les itérateurs : exemple
  • Quelques remarques complémentaires sur les itérateurs
  • Les conteneurs : list (std)
  • Quelques utilisations des List
  • Conteneurs associatifs : Map
  • Exemple de conteneur associatif Map
  • Autres conteneurs

Algorithmes

  • Algorithmes
  • Fill : remplissage
  • Swap : échange
  • Copy : copie
  • Rotate : réorganisation par rotation
  • Opération sur les ensembles
  • Exemple d'utilisation


Dates et tarifs

Inter entreprises

Intra entreprise

  • Région parisienne : 3900 HT
  • Autres zones : 3900 HT + Frais de déplacement
  • Dates : Consultez moi

Centres de formation partenaires