next up previous contents
Next: Accès à l'édition de Up: Édition de liens Previous: Codage des noms de

Déclaration et définition

Il faut d'abord distinguer entre déclaration et définition. Une déclaration introduit un nom et ne fait que préciser au compilateur l'usage de ce nom. Par défaut, une déclaration est souvent aussi une définition. Pour un objet une définition correspond aussi à son allocation. Une déclaration d'un objet ne sera pas une définition si elle comprend le préfixe extern.

Exemples de déclarations:

 extern int i;
 struct S;
 class T;
 extern const int c;
 typedef char C;
 int f();
Exemples de définitions (+déclarations):
 int i;
 extern const c=1;
 struct S{int a; char c;};
 enum{un,deux};

En C++, un objet doit être dans la portée d'une seule définition, mais éventuellement de plusieurs déclarations. En C++, pour permettre les compilations séparées, tout nom utilisé dans un programme doit être dans la portée d'une déclaration présente dans le fichier. Il n'y a pas, contrairement au C, de déclaration par défaut pour les fonctions. En clair, le compilateur doit être capable de déterminer tous les types des objets manipulés uniquement à partir de ce qui est présent dans le fichier à compiler. Pour pouvoir utiliser une classe et les fonctions travaillant sur cette classe, il faudra ajouter au fichier toutes les déclarations nécessaires (fichiers d'inclusion).



Mon Oct 20 14:02:48 MET 1997