Rappel des concepts de base du développement C++
- Les différents fichiers sources (.h, .cpp...).
- Linkage et compilation de code écrit en C++.
- Ecriture de classes et structures : la syntaxe de base.
- Réutilisation de composants déjà compilés : .lib, .dll, .h etc.
Travaux pratiques
Création d'une solution multi-projets en C++, avec linkage statique et dynamique.
Présentation des concepts C++ avancés
- Instanciation "statique" versus instanciation "dynamique" d'objets.
- Les différents types de constructeurs (par défaut, par copie...).
- Gestion de la mémoire sans garbage collector (manuellement ou en utilisant les smart pointers de la librairie standard).
- Héritage multiple : cas pratiques et pièges à éviter.
- Les Templates.
- Orientation objet et comparaison avec C#.
Travaux pratiques
Atelier de manipulation des smart pointers de la librairie standard.
Librairie standard : la BCL de C++
- Représentations mémoires possibles d'une chaîne de caractère et manipulation avec std::string et std::wstring.
- Introduction à la stl (standard template library).
- Containers et itérateurs, les collections C++.
Travaux pratiques
Atelier de manipulation de chaînes de caractères et de collections en C++.
Syntaxe C++ avancée
- Inférence de types et mot-clef automatique.
- Orientation fonctionnelle du langage : Lambdas, Functors... et utilisation avec la stl.
- Asynchronisme et parallélisation avec C++ 11.
- Utilisation d'objets COM Microsoft, avec et sans smart pointers.
Travaux pratiques
Exercice d'introduction à la parallel platform library, et manipulation d'expressions Lambda. Cas pratique de consommation d'objets COM, illustration avec Direct 2D.
C++ et l'interopérabilité
- Publication d'objets COM Windows réutilisables.
- Interopérabilité avec .Net sur le Desktop : C++ CLI.
- Interopérabilité avec .Net et JavaScript dans les applications Metro : C++ / CX.
Travaux pratiques
Création d'une application métro hybride C# / Xaml + C++ / Direct 2D.