up previous


Méthodes et outils pour la programmation
Exemples en C++

Jean-Michel HUFFLEN

Février 2007

En complément aux documents qui vous été donnés durant les séances de cours et travaux dirigés, cette page Web vous permet l'accès à des programmes en C++ qui reprennent la plupart des difficultés abordées. Pour quelques-uns d'entre eux, il existe certaines alternatives à tester. Aussi, n'hésitez pas à les télécharger, à les essayer, les modifier pour mieux les comprendre. Ils ont tous été testés sous le système d'exploitation Linux SuSE, avec le compilateur g++ du projet GNU1.

Rappelons que pour faciliter la ré-utilisation des définitions d'un programme en C++, il est d'usage de séparer la définition d'une classe C0 en deux fichiers C0.h et C0.C2. Le premier fichier (C0.h) contient l'interface, c'est-à-dire la spécification de ses fonctionnalités privées, protégées et publiques. Le second fichier (C0.C) contient la réalisation des constructeurs et autres fonctions de la classe, il est relié au premier fichier par la directive :

#include "C0.h"
présente en début de fichier. Avec le compilateur g++, la compilation de ce fichier C0.C s'ordonne par :
g++ -c -o C0.o C0.C
L'option -c ne fabrique pas de fichier directement exécutable : elle s'emploie si le fichier C0.C ne comporte pas de fonction main. Ajouter l'option -Wno-deprecated si vous utilisez une ancienne bibliothèque (par exemple, si l'en-tête est iostream.h pour les entrées-sorties, au lieu de iostream, fournie par la STL3).

Considérons un fichier C0-main.C, utilisant les définitions de la classe C0 -- il doit donc lui aussi inclure la directive :

#include "C0.h"
-- et comportant une fonction main. La compilation de ce dernier fichier est analogue :
g++ -c -o C0-main.o C0-main.C
Après quoi, l'édition de liens, suivie de la production d'un fichier exécutable s'effectue encore une fois grâce à la commande g++ :
g++ -o C0-main C0-main.o C0.o

Rappelons que dans le cas de définitions génériques -- utilisant les templates -- c'est toute la classe qui doit être placée dans le fichier .h, le compilateur fabriquant si besoin est les définitions correspondant aux instanciations de ces fonctions et classes4.

Sauf lorsque certaines classes sont réutilisées dans plusieurs programmes5 -- les classes génériques du fichier ordered-lists-v2.h --, nous avons groupé interfaces et réalisations dans un unique fichier .C, qui peut donc se compiler directement en un fichier exécutable, par exemple :

g++ -Wno-deprecated -o circles circles.C

Un fichier Makefile joint à la distribution montre qu'il est possible d'automatiser toutes ces opérations de compilation.


Voici quels sont les fichiers : pour la quasi-totalité d'entre eux, ils sont d'ores et déjà disponibles sous des versions quasi-définitives. Ils sont présentés ci-après par ordre alphabétique et non par ordre de difficulté.

\fbox{\foreignlanguage{english}{\emph{C++'s winning again, innit?}}}

À propos de ce document...

Méthodes et outils pour la programmation
Exemples en C++

This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.70)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -split 0 MOP

The translation was initiated by hufflen jean-michel on 2007-02-21


Notes

... GNU 1
GNU's Not UNIX.
...C0.C 2
Le suffixe .C est plutôt utilisé dans le monde d'UNIX, le suffixe .cpp dans le monde de Windows. Mais il s'agit du même type de fichiers.
... STL 3
Standard Template Library.
... classes 4
En réalité, tous les compilateurs C++ ne procèdent pas ainsi. Mais c'est le cas de g++ et du compilateur de Borland.
... programmes 5
... et dans les exemples gracieusement fournis par Medetonham Pamba, présents dans le directory pamba.

up previous
hufflen jean-michel 2007-02-21