EnglishSite mapContactsFrançais
 SociétéConseilFormationIngénierieProduitsMOATechnologiesMétiersEvénementsRecrutement
Formation 
Objectifs
  • Acquérir les mécanismes avancés de la programmation par objet en C++.
  • Savoir identifier les différentes formes de programmation dans le langage objet en maitrisant celles qui doivent être employées et celles dont l'emploi est à proscrire.
Publics
  • Ces cours sont destinés à des ingénieurs concepteurs et ingénieurs de développement ayant déjà une première pratique du C++
Pré-requis
  • La connaissance du langage C++ est requise.
Théorie / Pratique
  • 50/50
Réf : POCA / 3 Jours
Paris 2010
Nous contacter
Nantes 2010
Nous contacter
Rennes 2010
Nous contacter
Sophia-Antipolis 2010
22-24 Sept 15-17 Déc.
1350€ ht
Développement d'applications C++ Avancé
Enjeux
Comprendre et maîtriser les principes et l'architecture C++ pour le développement d'applications de manière avancée.

Concepts et mécanismes fondamentaux de C++
  • Présentation,
  • Histoire et caractéristiques de C++,
  • Objets et types,
  • La classe C++ et ses nombreuses interprétations,
  • Création, suppression et initialisation d’objets,
  • Copie d’objets.
Les exceptions
  • Mécanisme basique,
  • Exceptions dans un constructeur,
  • Listes d’exceptions levées,
  • Organisation d’exceptions dans une hiérarchie de classes,
  • Sécurité des exceptions (l’idiome de programmation “Resource Acquisition Is Initialization”).
Run Time Type Information (RTTI)
  • Motivation (problématique du 'down cast', l’opérateur 'dynamic_cast'),
  • La classe 'typeinfo' et l’opérateur 'typeid',
  • Utiliser RTTI correctement,
  • Les nouveaux opérateurs 'cast' en C++ (les cast 'static', 'reinterpret' et 'dynamic').
Héritage multiple en C++
  • Héritage multiple régulier,
  • Héritage multiple virtuel,
  • Construction des classes de base virtuelles,
  • Conversions en cas d’héritage multiple.
Les fonctions et les classes génériques (template)
  • Fonctions template,
  • Instantiation implicite de templates,
  • Spécialisation,
  • Fonctions template et suppression du pré-processeur C++,
  • Classes template,
  • Instantiation implicite de templates,
  • Classes template et héritage de classes,
  • Classes template et friends,
  • Paramètres template et leurs conversions,
  • Conversion de classes template (problématique de la contravariance),
  • Problématique de l’instantiation de template,
  • Forcer l’instantiation de templates,
  • Spécialisation et spécialisation partielle de templates.

Les mécanismes divers
  • Pointeur aux membres,
  • Les opérateurs.* et ->*,
  • Nouveaux mots clés,
  • Diverses extensions ANSI / ISO.
Les espaces de nommage
  • Motivation et principe,
  • Les espaces de nommage ne sont pas des packages,
  • Ouvertures des espaces de nommage,
  • Recherche par nom avec espaces de nommage,
  • Classes et espaces de nommage.
La bibliothèque d’exécution standard C++
  • Compatibilité avec ANSI / ISO C,
  • Organisation et philosophie de la STL,
  • Le principe de Pure Abstraction.
Conteneurs et itérateurs
  • Opérations communes et spécifiques,
  • Complexité algorithmique des opérations sur les conteneurs.
Algorithmes
  • Les objets fonctions et les fonctionnels,
  • Les itérateurs revisités (l’insertion d’itérateurs).
Chaînes de caractères
  • Encodage et traits de caractères,
  • Opérations sur les chaînes de caractères,
  • Les chaînes de caractères en tant que conteneurs,
  • Les itérateurs sur les chaînes de caractères.
Input-Output streams
  • Les opérations et les manipulateurs
  • Les itérateurs sur les IO streams.
Allocation dans la STL
  • Les classes d’allocation.
Quelques mots sur la numérique dans la STL
Travaux pratiques illustrant différents aspects avancés de C++ :
  • smart pointers,
  • classes avec opérations de copie optimisées,
  • architectures et idiomes pour la factorisation de code lors de l’usage des classes template,
  • exercices avec certaines classes et algorithmes de la STL,
Copywright © 2009 SOFTEAM - Think Object : Modeling