Langage C++ - Perfectionnement
2 jours - 14 heures
Objectifs
Analyser efficacement un code pour l’optimiser et le déboguer.
Acquérir les meilleures méthodes pour une programmation robuste et fiable de vos programmes en C++.
Participants
Toute personne ayant suivi le stage fonctions de base ou maitriser l’ensemble des concepts.
Prérequis
Connaître les principes de base de l'algorithme
Disposer de connaissances du langage C++ et la programmation orientée objet
Pédagogie
La pédagogie est basée sur le principe de la dynamique de groupe avec alternance d'apports théoriques, de phases de réflexion collectives et individuelles, d'exercices, d'études de cas et de mises en situations observées. Formation / Action participative et interactive : les participants sont acteurs de leur formation notamment lors des mises en situation car ils s'appuient sur leurs connaissances, les expériences et mettront en œuvre les nouveaux outils présentés au cours de la session.
Spécificités pédagogiques de la session à distance
Formation dispensée en visio-formation avec un séquencement adapté. Configuration et accès à notre outil de visio-formation. Accès à la bibliothèque pédagogique virtuelle durant la formation afin de partager les exercices, contrôler les résultats obtenus et déployer l’ensemble du séquencement pédagogique. La durée exacte des modules définis ci-après est susceptible de varier en fonction de la vitesse d’appropriation des concepts enseignés de la part du stagiaire.
Remarques
Certification
Formation Certifiante Code CPF 236234
Profil de l'intervenant
Consultant-formateur expert. Suivi des compétences techniques et pédagogiques assuré par nos services.
Moyens techniques
Encadrement complet des stagiaires durant la formation. Espace d’accueil, configuration technique des salles et matériel pédagogique dédié pour les formations en centre. Remise d’une documentation pédagogique papier ou numérique à échéance de la formation.
Moyens techniques relatifs aux sessions à distance
Encadrement complet des stagiaires durant la formation. Accès à notre service technique durant l’animation pour toute limite rencontrée. Accès à l’espace de conversation instantané durant la session pour interagir avec le formateur et les participants. Transmission d’un email de contact pour réaction privée durant la session. Remise d’une documentation pédagogique papier ou numérique à échéance de la formation.
Méthodes d'évaluation des acquis
Exercices individuels et collectifs durant la formation. La feuille d’émargement signée par demi-journée ainsi que l’évaluation des acquis de fin de stage sont adressées avec la facture.
Méthodes d'évaluation des acquis de la formation à distance
Exercices individuels et collectifs communiqués durant la formation via la bibliothèque pédagogique virtuelle mise à disposition ou directement par le formateur. Ces activités constituent les modalités de suivi et d’évaluation du Stagiaire de la part du formateur. Suivi permanent du formateur durant l’animation et durant les exercices pratiques.
Programme
Rappels sur le C++
- Typage
- Héritage
- Polymorphisme
- Compilation modulaire
- Abstraction
- Classes abstraites
- Constructeur
- Constructeur de copie
- Destructeur
- Surcharge d'opérateur
- Références et pointeurs
- Pointeurs de pointeurs
- Pièges liés à l'utilisation de pointeurs
- Initialisation des pointeurs
- Compilation
- Allocation de mémoire dynamique
Les templates
- Présentation
- Notion de patron de classes
- Standard Template Library Container séquentiel
- Container associatif
- Créer des templates
- Hiérarchie des templates
- Utiliser des templates
- Intégration
Les espaces de noms
- Définition
- Portée (scope)
- Les espaces de noms anonymes
- Résolution d'espace de noms
- Accès aux namespaces
- Gestion avancée des opérateurs
- Conversion
- Affectation
- Copies
Les exceptions
- Traitement des erreurs Throw
- try
- catch terminate
- Les variantes de catch
- Exceptions dans les effaceurs
- Récupérer les exceptions
- Transmettre les exceptions
La bibliothèque standard de modèles
- Présentation
- Standard Template Library
- Sécurité des exceptions
- Les containers
- Les itérateurs
- Algorithme fonctionnelle
- Gestion des fichiers avec les streams
Aspects avancés
- Modèle mémoire et garbage collecteur
- Allocation dynamique de la mémoire
- Pointeurs classiques et conversion de types
- Les Smart pointers et conversion de types
- Les friends Les mutable auto_ptr
- Traitements concurrents avec les Threads et synchronisations
- Débordements de tableaux
Compilation modulaire et gestion de projets
- Organisation du programme en modules
- Librairie statiques et librairies partageables : so et dll
- Utilisation efficace de make
Mise au point du code et optimisation
- Présentation des outils: nm, lint, gprof, valgrind...
- Mise en œuvre du débogueur
- Ecriture de code optimisé
- Fuite de mémoire et code sécurisé
- Performances du code et Profiling
- Programmation core cohérent