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.
Public Visé
Collaborateurs - Développer ses compétences, s’affirmer comme expert dans son domaine, sécuriser son parcours professionnel ; Entreprises ou organisations - Accélérer les évolutions de carrière des collaborateurs, augmenter l’efficacité et l’employabilité des équipes… ; Demandeur d’emploi - Développer son employabilité, favoriser sa transition professionnelle...
Profil de l'intervenant
Consultant-formateur expert. Suivi des compétences techniques et pédagogiques assuré par nos services.
Accessibilité
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.
Méthodes d'évaluation des acquis
Un contact téléphonique est systématiquement établi avec le stagiaire ou la personne chargée de son inscription afin de définir le positionnement. Si besoin, un questionnaire est adressé pour valider les prérequis en correspondance et obtenir toute précision nécessaire permettant l’adaptation de l’action. Durant la formation, des exercices individuels et collectifs sont proposés pour évaluer et valider les acquis du stagiaire. La feuille d’émargement signée par demi-journée ainsi que l’évaluation des acquis sont adressées avec la facture.
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