Déclaration sans définition

Jusqu’à présent, toutes les structures que nous avons utilisées étaient entièrement définies dès le début. Il est toutefois permis de déclarer une structure sans en donner la définition, comme ceci :

struct exemple;

Dans ce cas, la définition doit se trouver plus loin dans le programme. Il s’agit donc de quelque chose de très semblable aux prototypes de fonctions. L’intérêt est le même : on peut ainsi masquer le contenu de la structure en ne plaçant que la déclaration dans un fichier en-tête (voir chapitre 10).

On peut aussi définir des structures croisées :

struct exemple1;				struct exemple2 {     exemple1* pex1;     // ...     };				struct exemple1 {     exemple2* pex2;     // ...     };

ce qui serait impossible autrement. Notons toutefois que les opérations nécessitant la taille de exemple1 sont interdites dans exemple2 ; en particulier, on ne peut pas placer un champ de type exemple1 dans exemple2. Les fonctions acceptant un paramètre de ce type peuvent par contre être déclarées (mais difficilement définies puisqu’on ne peut utiliser aucun membre de la structure).

Précédent Précédent Sommaire Sommaire Suivant Suivant