ALGORITHMIQUE ET PROGRAMMATION
ORIENTEE OBJET EN C++
 

Ce document s'adresse à ceux qui connaissent déjà la programmation orientée objet et qui souhaitent acquérir les bases du langage C++ à travers le développement d'algorithmes et de structures de données classiques. Dans une première partie, les bases du langage C++ sont rappelées, d'abord les notions héritées du langage C (syntaxe, mémoire, pointeurs...), et ensuite la syntaxe propre à la programmation orientée objet (classes, héritage...). Dans une seconde partie, quelques éléments d'algorithmique sont présentés: le tri de tableaux et la manipulation de listes chaînées.

Des documents plus complets sur les différents thèmes abordés ici sont également disponibles.

Voici un bref résumé de chacun des chapitres de ce document. Ils sont présentés sous la forme d'un diaporama qui, je l'espère, sera assez explicite.


  • Présente les bases du langage C++, principalement des notions héritées du langage C: les tableaux, les fonctions, la gestion de la mémoire, les pointeurs...


  • Introduit la syntaxe pour la déclaration de classes et la manipulation d'objets en C++, avec des particularités notamment liées aux notions de pointeur et de référence, ainsi qu'aux phases de construction et de destruction des objets.


  • Explique les spécificités du mécanisme d'héritage entre classes en C++: méthodes virtuelles, polymorphisme, construction et destruction d'objets issus d'un héritage...


  • Détaille deux algorithmes classiques de tri d'éléments dans un tableau: le tri par sélection, une solution simple à implémenter, et le tri par fusion, une approche récursive plus performante.


  • Introduit les listes chaînées, une structure de données plus souple que les tableaux qui permet le chaînage d'éléments. Les différentes opérations sur cette structure sont abordées.


  • Présente succinctement le principe de généricité qui est très utilisé pour le développement d'algorithmes et de structures de données. La généricité permet de gommer certaines pertes de performance liées à l'usage de la programmation orientée objet en C++.