Evolution MM

Formations à l'informatique
Découvrez la différence ENI

Lien accueil

Téléchargez le Calendrier des formations

Nantes, Rennes, Niort, Nice, Paris

jusqu'à juillet 2018

Rechercher
Rechercher une formation
 

Langage C++

Public :

  • Tout développeur désireux d'apprendre le langage C++ ANSI.

Objectifs :

  • L'objectif de la formation est de comprendre les concepts fondamentaux de la programmation orientée objets par le biais du langage C++ ANSI. Au terme de la semaine, les stagiaires seront capables de comparer les concepts inhérents à la programmation procédurale avec ceux induits par une conception objets. Par défaut, l'atelier de développement utilisé sera Eclipse/CDT. L'accent sera mis sur les nombreux travaux pratiques proposés.

Pré-requis :

  • Pour pouvoir suivre cette formation, les stagiaires devront obligatoirement maîtriser le langage de programmation C. Effectivement, les aspects élémentaires de la syntaxe C (modularité, codage d'une fonction, les pointeurs, ...) seront considérés comme acquis et largement exploités durant la semaine. Une connaissance préalable d'un langage orienté objets n'est absolument pas requise.

Contenu pédagogique

Extensions procédurales du langage

  • Le fameux HelloWorld en C++
    • Une nouvelle librairie d'entrées/sorties
    • Une nouvelle forme de commentaires
  • Un contrôle de typage renforcé en rapport à C
  • Principe de localité
  • Gestion dynamique de la mémoire
  • Mode de passage de paramètres par référence
  • Définition de fonctions inlines
  • Surcharge et valeurs de paramètres par défaut
    • Valeurs de paramètres par défaut
    • Surcharge de fonctions
    • Surcharge d'opérateurs
  • Définition de fonctions membres d'une structure

Introduction aux concepts d'objets et de classes

  • Quelques points de vocabulaires
  • Définitions de classes et instanciations d'objets
  • Définitions de membres à l'intérieur d'une classe
    • Définitions d'attributs de classes
    • Définitions de méthodes
    • Comparatifs entre méthodes et fonctions
  • Concept d'encapsulation
    • Définition de méthodes d'accès aux attributs
    • Niveaux de visibilité des membres d'une classe
    • Intérêts de l'encapsulation
  • Concept de composition
  • Les constructeurs et les destructeurs
    • Le constructeur par défaut
    • Le constructeur par copie
    • Le destructeur
  • Comment bien prototyper nos méthodes
  • Définition d'opérateurs membres d'une classe

La généricité (les templates)

  • Buts et intérêts de la généricité (factorisation de code)
  • Les fonctions génériques
    • Aspects syntaxiques
    • Où localiser le code d'une fonction générique
    • Pièges à éviter
  • Définitions de classes génériques
    • Aspects syntaxiques
    • Implémentation des méthodes génériques
    • Recopie d'objets contenant des pointeurs

Introduction au concept d'héritage

  • Pourquoi mettre en œuvre l'héritage ?
  • Aspects syntaxiques
  • Constructions et destructions d'objets basés sur l'héritage
    • Cycle de vie d'un objet
    • Cascade des appels de constructeur
    • Cascade des appels de destructeur
  • L'héritage induit le polymorphisme
  • Modes de liaisons d'appels de méthodes
    • La liaison statique (early binding)
    • La liaison dynamique (late binding)
    • Fonctionnement en interne de la liaison dynamique
    • Le piège des destructeurs

Gestion des exceptions

  • Rappels sur la gestion des erreurs en C
    • Valeurs de retour identifiant le problème survenu
    • Utilisation de l'entête
    • Limites de ce modèle
  • Qu'est qu'une exception ?
    • Types d'exceptions
    • Définition d'une classe d'exception
    • Les classes d'exceptions ANSI
  • Déclanchement d'exceptions dans un système informatique
  • Modes de traitement d'une exception
    • Capturer l'exception - instruction try ... catch
    • Relayer l'exception à la méthode appelante
  • Cas subtiles d'utilisations des exceptions
Durée : 5 jour(s)
Tarif : 2 950 € (HT)
Réf : T440-030

Dates des sessions

Nantes (44) 09/07/18 Rennes (35) 09/07/18 Paris (75) 09/07/18 Niort (79) 09/07/18 Nice (06) 09/07/18 in-class™