Changes between Version 5 and Version 6 of 2010CaoTme1


Ignore:
Timestamp:
Feb 22, 2010, 6:16:48 PM (15 years ago)
Author:
jpc
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 2010CaoTme1

    v5 v6  
    11
    22= Mon Premier Objet en C++ =
     3
     4
     5== Make & Makefiles ==
     6
     7Les programmes complexes sont décomposés en ''unités de compilation'' ou encore
     8''modules''. Par exemple, une classe comme {{{Vector}}} sera associée à deux
     9fichiers, {{{Vector.h}}} et {{{Vector.cpp}}} et un module {{{Vector.o}}}.
     10Les modules ({{{.o}}}) doivent être recompilés lorsque leurs dépendances
     11({{{.h}}} ou {{{.cpp}}}) changent, c'est à dire que ces fichiers viennent
     12d'être édités par le concepteur. On voit ainsi apparaître une relation de
     13dépendance temporelle: le module doit être ''plus récent'' que les fichiers
     14dont il dépend. Un programme complet pouvant comprendre plusieurs dizaines
     15d'unités de modules, il est impossible de gérer manuellement sa recompilation.
     16
     17Le programme '''make''' apporte une solution à ce problème. '''make''' permet
     18de décrire un graphe de dépendances temporelles ainsi que les action à effectuer
     19lorsqu'une de ces dépendances n'est pas vérifiée. La figure (1) fourni un petit
     20exemple de graphe, correspondant à ce TME.
     21
     22[[Image(Makefile-1.png)]]
     23
     24Le fichier de configuration de '''make''' se nomme {{{Makefile}}} et doit se
     25trouver dans le répertoire courant dans lequel on lance la commande.
     26
     27=== Anatomie d'une régle ===
     28
     29Une régle se compose de trois parties:
     30 * Une cible (ou ''target'') : ce fichier doit être ''plus récent'' que toutes
     31   les fichiers de dépendance.
     32 * Les dépendances : une liste de fichiers dont les dates doivent être ''plus
     33   anciennes'' que la cible.
     34 * Une action : la commande à éxécuter pour satisfaire la dépendance. Dans notre
     35   cas, recompiler le module avec {{{g++}}}.
     36
     37[[Image(Makefile-rule-1.png)]]
     38
     39
     40== Style de Codage ==
     41
     42'''Le beau, le bien et le bon'''.
     43
     44Les Grecs n'avait qu'un seul mot pour ces trois concepts, c'est à dire que pour
     45eux ils étaient indiscernables.
     46
     47Dans le cadre du développement logiciel, on adopte une approche similaire.
     48Un programme qui fonctionne bien est un programme dont les concepts sont clairs
     49et dont le code est aisément lisible. Il vous sera donc demandé de respecter
     50le modèle de présentation suivant pour l'écriture de votre code.
     51
     52[[Image(Cpp-Style-1.png)]]
     53
     54Le point important étant ''l'indentation''. Pour éviter d'avoir du texte trop
     55large, réduisez la taille des tabulations à 2 ou 4 espaces.
     56
    357
    458== La Classe Vector ==
     
    963tableau d'entier.
    1064
    11 [[Image(Vector-1.png,align=center)]]
     65[[Image(Vector-1.png)]]
    1266
    1367=== Construction ===