Salle libre service
On rappelle que l'Université dispose d'une plate-forme pédagogique en ligne, sur laquelle vous pouvez trouver des informations à propos des cours : DiDEL.
23-05
2012

Langages à Objets Avancés - Cours de C++

Informations générales

Dans ce cours de langages à objet (qui est en réalité un cours programmation objet en langage C++ voire un cours de C++), nous nous emploierons à passer en revue les nombreuses constructions disponibles dans le langage C++, en particulier celles relatives à la programmation objet, et expliquerons en quoi elles sont fondées et donc quels usages raisonnés l’on peut en faire.

Ce cours intitulé « langages à objets avancés » est à destination d’étudiants en Master première année d’informatique de l’Université Paris Diderot et suppose la maîtrise du langage C et si possible la pratique élémentaire d’une programmation objet (Java par exemple).

Sont fournis ici, différents supports pédagogiques : cours, travaux pratiques, suppléments documentaires et annales.

Les cours

  • Cours n°1 - Introduction
  • Cours n°2 - Sweet C++, constantes, allocation dynamique — new/delete, surcharge de fonctions, espaces de noms - namespaces -, références
  • Cours n°3 - Le paradigme objet, analyse, conception, modélisation, diagrammes, notation UML, généralisation/spécialisation, composition, agrégation, association
  • Cours n°4- Entrons dans la classe, type concret, construction/destruction, initialisation, constructeur de copie, passage par valeur, passage par référence, objets constants, attributs constants
  • Cours n°5 - Restons en classe, objets volatiles, volatiles-constants — sic! —, this, membres statiques, contrôle d’accès, privé, public, les amitiés — friend —, initialisation de membres de classe
  • Cours n°6 - De la modélisation à la représentation ou encore, du modèle aux classes : implémentation C++ des associations, composition, agrégations, classes d’association
  • Cours n°7 - Spécialisation — Héritage, la spécialisation
  • et sa réalisation par héritage, dérivation publique, constructeurs, destructeurs, redéfinition vs surcharge, retour sur le contrôle d’accès et la protection, la relation d’amitié, changement de domaine, compatibilité des types, copie et héritage
  • Cours n°8 - Factorisation, la factorisation conceptuelle, généralisation, factorisation d’implémentation, classes abstraites, classes partielles, implémentation partielle, méthodes virtuelles, destructeurs virtuels, dynamic_cast, RTTI
  • Cours n°9 - Héritage multiple, l’héritage multiple comme réalisation d’une composition, l’héritage multiple comme réalisation de la généralisation multiple)
  • Cours n°10 - Surcharge d’opérateur, LOVE=TOI+MOI
  • Cours n°11 - Modèles et généricité, les modèles et la généricité modèles de classes, modèles de fonctions, classes génériques, templates
  • Cours n°11,5 - Design Patterns, les designs patterns et quelques-unes de leur implémentation en C++
  • Cours n°12 - Exceptions, les exceptions, erreurs, traitement des erreurs, incident, capture d’une exception, parcours d’une exception, constructeurs et exceptions, destructeurs et exceptions, exception-safety, function-try-block
  • Cours n°13 - STL, la Standard Template Library (aka STL) une présentation de divers template utiles… Conteneurs, algorithmes, itérateurs, flux d’entrées/sorties…
  • Cours n°14 - Méta-programmation, C++ avancé, ou comment calculer des types. Une présentation de la méta-programmation à travers les templates et leur usage en vue d’obtenir des calculs à la compilation.

Les Travaux Pratiques

Voici les supports pour l’année 2011—2012, ils sont inspirés de ceux des années précédentes et ont été réalisés par Daniele Varacca Khouloud El zine abidine et Jean-Baptiste Yunès:

Les sujets de partiel, examen et projet

Le sujet du partiel de novembre 2011 : ici

Le sujet de l’examen de Janvier 2012 : ici avec sa correction partielle :

Les sujets de projets pour l’année 2011—2012 :

Note (importante) : les projets ne peuvent être effectués que par groupe projet de deux ou trois étudiants. D’autre part, il vous est demandé de bien vouloir envoyer la composition de vos groupes projet par courrier au responsable du cours Jean-Baptiste Yunès avant le Vendredi 16 décembre 2011, minuit.

Les annales

Quelques anciens supports…

2009—2010 :

2010—2011 :

Les suppléments documentaires