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

  • Maîtriser les principes fondamentaux de la conception objet et les pratiquer de façon effective en C++ au travers d'une application réalisée de façon itérative et incrémentale tout au long de la formation
  • Mettre en oeuvre les nouveautés offertes par la dernière norme C++ 11 / 14
  • Utiliser de façon productive un environnement intégré
  • 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 (C, C++, VB...)
  • 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
  • Les smart pointers (unique_ptr, shared_ptr) 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
  • Les nouveaux mots-clés (default, delete, override, final) 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

Méthode pédagogique

Chaque participant travaille sur un poste informatique qui lui est dédié. Un support de cours lui est remis soit en début soit en fin de cours. La théorie est complétée par des cas pratiques ou exercices corrigés et discutés avec le formateur. Le formateur projette une présentation pour animer la formation et reste disponible pour répondre à toutes les questions.

Méthode d'évaluation

Tout au long de la formation, les exercices et mises en situation permettent de valider et contrôler les acquis du stagiaire. En fin de formation, le stagiaire complète un QCM d'auto-évaluation.

Suivre cette formation à distance

  • Un ordinateur avec webcam, micro, haut-parleur et un navigateur (de préférence Chrome ou Firefox). Un casque n'est pas nécessaire suivant l'environnement.
  • Une connexion Internet de type ADSL ou supérieure. Attention, une connexion Internet ne permettant pas, par exemple, de recevoir la télévision par Internet, ne sera pas suffisante, cela engendrera des déconnexions intempestives du stagiaire et dérangera toute la classe.
  • Privilégier une connexion filaire plutôt que le Wifi.
  • Avoir accès au poste depuis lequel vous suivrez le cours à distance au moins 2 jours avant la formation pour effectuer les tests de connexion préalables.
  • Votre numéro de téléphone portable (pour l'envoi du mot de passe d'accès aux supports de cours et pour une messagerie instantanée autre que celle intégrée à la classe virtuelle).
  • Selon la formation, une configuration spécifique de votre machine peut être attendue, merci de nous contacter.
  • Pour les formations incluant le passage d'une certification la dernière journée, un voucher vous est fourni pour passer l'examen en ligne.
  • Pour les formations logiciel (Adobe, Microsoft Office...), il est nécessaire d'avoir le logiciel installé sur votre machine, nous ne fournissons pas de licence ou de version test.
  • Horaires identiques au présentiel.