Recherche avancée
Par formation
Par date
Par ville
logo HUB Formation
Organisme de Formation
aux Technologies et métiers de L'informatique
La pédagogie au service de la technologie
Accueil > C et C++ > Les fondamentaux du développement C++

Les fondamentaux du développement C++

Développez des applications stables et performantes

c-plus-plus

C++ est un langage de choix pour réaliser des applications évolutives, robustes et efficaces. Cette performance a cependant un prix : elle suppose de la part du développeur une réelle maîtrise, tant au niveau de la syntaxe que des concepts sous-jacents tels que les modèles mémoire, l’orientation objet ou encore la généricité. Cette formation permettra aux participants d'appréhender les principes fondamentaux de la conception objet et de les appliquer de façon effective en C++.

Objectifs

  • Acquérir les principes de base de la programmation Objet (polymorphisme, héritage, encapsulation)
  • Maîtriser le langage C++
  • Savoir réaliser des applications réutilisables
  • Connaître les meilleures pratiques de tests de qualité en C++

Public

  • Développeurs
  • Chargés de développement d’applications informatiques

Prérequis

  • Disposer d’une expérience d’un langage de programmation
  • Connaître les principes de la programmation orientée objet
  • Avoir déjà développé et livré une application

Programme de la formation

Introduction à la conception orientée objet

  • Les paradigmes de développement (procédural, objet, fonctionnel, déclaratif)
  • Principes de conception objet : Abstraction, Encapsulation, Héritage et Polymorphisme
  • Généricité

Syntaxe et modèle de C++

  • Point d’entrée d’une application
  • Utilisation de la console, objets d’entrée/sortie (streams)
  • Fonctions, paramètres et spécificateurs
  • Les tableaux
  • La classe C++11 array
  • Structures de contrôle
  • La boucle « for-each » de C++11
  • Introduction à la bibliothèque standard
  • Les modèles mémoire (Data segment, Heap, Stack)
  • Les pointeurs et les références
  • La classe std::string
  • L’initialisation uniforme de C++11
  • Allocation et désallocation dynamiques
  • de C++11
  • Les espaces de noms (namespaces)

Les concepts Objet appliqués au C++

  • Classes, instances, cycle de vie d’un objet
  • Encapsulation et visibilité (public-private-protected)
  • Méthodes, constructeurs, destructeurs
  • La zone d’initialisation des membres (ZIM)
  • Surcharge (overloading)
  • Membres de classes (ou statiques)
  • Héritage, classes abstraites et concrètes
  • Constance et robustesse
  • de C++11
  • Polymorphisme et interfaces
  • Héritage privé
  • La surcharge des opérateurs
  • Clonage d’objets (construction par recopie / opérateur d’affectation)

Robustesse et traitement des exceptions

  • Traitement des erreurs
  • Assertions
  • Traitement des exceptions
  • Les clauses try – catch
  • Gestionnaires d’exception
  • Création d’une classe d’exception personnalisée
  • Contrôle runtime de C++11 (clause noexcept)

Points clés de la Standard Template Library (STL)

  • Présentation des principaux conteneurs (vector, list, set, map, deque)
  • Critères de choix pour un conteneur STL
  • Emplacement de C++11
  • Les itérateurs
  • Les algorithmes génériques

Généricité - Templates

  • Définitions de patrons, syntaxe et instanciation
  • Patrons de fonctions
  • Templates de classe

Qualité logicielle et tests d’applications

  • Les best practices en C++
  • Idiomes et règles de conception
  • Introduction aux design patterns
  • Le développement guidé par les tests (TDD – Test Driven Development)
  • Présentation succincte de GoogleTest

Les + de cette formation

Une pédagogie efficace : l'alternance d'exposés théoriques et de mises en application immédiates à travers de nombreux travaux pratiques. Les méthodes, bonnes pratiques et astuces pour tirer le meilleur parti de la programmation en C++ et développer ainsi des applications stables et performantes.