Description du cours
Dans ce cours, vous apprendrez des sujets avancés en C ++. Vous comprendrez les principes d’une bonne conception de classe et comment les appliquer à l’écriture de vos propres programmes et comment utiliser l’héritage pour représenter des objets de la vie réelle sans avoir de code en double. Vous apprendrez à utiliser l’héritage multiple et à éviter les problèmes qu’il peut présenter. Le cours vous donnera une introduction aux concepts de programmation fonctionnelle et à l’utilisation des lambdas. Il vous donnera également un aperçu de la sémantique de déplacement que C++ 11 a introduite et vous donnera un aperçu des conteneurs STL et parlera du polymorphisme statique et dynamique.
Objectifs de la formation
- Introduire de bons concepts de conception de classe
- Introduire le concept d’héritage, ses avantages et ses inconvénients
- Afficher les alternatives dans la conception de la structure de classe
- Présenter plusieurs héritages et discuter des problèmes potentiels.
- Introduire le polymorphisme statique et dynamique
- Apprendre à utiliser la sémantique de déplacement
- Obtenir une introduction aux concepts de programmation fonctionnelle et à l’utilisation de la fonction lambda
- Apprendre à utiliser des modèles et des fonctions virtuelles pour le polymorphisme statique et dynamique
- Présentation des conteneurs STL
LES COMPÉTENCES
- Utiliser correctement l’héritage et l’héritage multiple pour concevoir des solutions pour le logiciel
- Utiliser correctement la sémantique de déplacement pour les objets
- Utiliser des fonctions lambda dans le code
- Apprendre à utiliser correctement les conteneurs STL
Compétences que vous apprendrez
- Présentation de fonction avancée
- Mathématiques avancées
- C++ (langage de programmation)
- Principes de base du C++
- Concepts C++
- Professionnel certifié SAS: Programmation avancée
Ce que vous allez apprendre
- Appliquer les principes d'une bonne conception de classe (class design) à vos propres programmes C++
- Utiliser l'héritage simple, multiple, privé, protégé et hiérarchique tout en évitant les pièges courants
- Implémenter le polymorphisme statique et dynamique en utilisant des modèles (templates), des fonctions virtuelles et la liaison dynamique (dynamic binding)
- Utiliser la sémantique de déplacement (move semantics) du C++11 dans votre code
- Écrire des fonctions lambda et appliquer les concepts de la programmation fonctionnelle, y compris les règles de capture et les signatures de retour
- Travailler avec les conteneurs de la STL
Points clés à retenir
- Le cours aborde les bonnes pratiques de conception de classes et la manière d'appliquer ces principes lors de la rédaction de vos propres programmes.
- L'héritage est présenté avec ses avantages et ses inconvénients, ainsi que des alternatives telles que la composition de classes pour concevoir la structure des classes.
- L'héritage multiple est abordé ainsi que ses problèmes potentiels, notamment les ambiguïtés et leur résolution à l'aide de classes de base virtuelles.
- Le polymorphisme statique et le polymorphisme dynamique sont tous deux abordés, en utilisant des modèles (templates) et des fonctions virtuelles, ainsi que des concepts tels que la liaison dynamique (dynamic binding), les VTables et les fonctions virtuelles pures.
- Le cours introduit la sémantique de déplacement (move semantics) du C++11, la programmation fonctionnelle avec les expressions lambdas, et les conteneurs de la STL.
Foire aux questions
Que couvre le cours avancé sur C++ ?
Il couvre des sujets avancés sur C++, notamment la conception appropriée des classes, l'héritage (simple, multiple, privé et protégé), le polymorphisme statique et dynamique, la sémantique de déplacement (move semantics) de C++11, la programmation fonctionnelle avec des lambdas, et les conteneurs STL.
Comment le cours traite-il l'héritage multiple ?
Il présente l'héritage multiple et aborde ses problèmes potentiels, notamment les ambiguïtés dans l'héritage multiple et leur résolution à l'aide de classes de base virtuelles.
Qu'est-ce que je vais apprendre sur le polymorphisme ?
Vous serez initié au polymorphisme tant statique que dynamique, en apprenant à utiliser les templates (modèles) et les fonctions virtuelles, ainsi que la liaison dynamique (dynamic binding), les VTables, les destructeurs de classes virtuels et polymorphes, et les fonctions virtuelles pures (pure virtual functions) ainsi que les classes d'interface.
Le cours aborde-t-il des fonctionnalités modernes du C++ telles que les lambdas et la sémantique de mouvement (move semantics) ?
Oui. Il propose une introduction aux concepts de la programmation fonctionnelle et à l'utilisation des fonctions lambda, y compris les règles de capture ainsi que la signature et le retour, et fournit un aperçu de la sémantique de mouvement (move semantics) introduite en C++11.
Quelles compétences sont associées à ce cours ?
Les compétences associées comprennent le langage de programmation C++, les principes fondamentaux du C++ et les concepts du C++.









