2009-07-26 7 views
3

Comment mettre une structure dans un fichier séparé? Je peux le faire avec des fonctions en mettant la fonction prototype dans un fichier d'en-tête par exemple. file.h et le corps de la fonction dans un fichier comme file.cpp, puis en utilisant la directive include #include "file.h" dans le fichier source avec main. Quelqu'un peut-il donner un exemple simple de faire la même chose avec une structure comme celle ci-dessous? J'utilise dev-C++.Prototype de structure?

struct person{ 
    string name; 
    double age; 
    bool sex; 
}; 

Répondre

6

Tout déclarer

struct person; 

Il est appelé class forward declaration. En C++, les structures sont des classes avec tous les membres publics par défaut.

3

Si vous parlez d'une déclaration struct:

Person.h:

#ifndef PERSON_H_ 
#define PERSON_H_ 
struct person{ 
    string name; 
    double age; 
    bool sex; 
}; 
#endif 

Ensuite, vous ajoutez seulement Person.h dans les fichiers .cpp où vous avez besoin que struct .

Si vous parlez d'une variable (globale) de la struct:

Person.h:

#ifndef PERSON_H_ 
#define PERSON_H_ 
struct person{ 
    string name; 
    double age; 
    bool sex; 
}; 
extern struct Person some_person; 
#endif 

Et dans un de vos fichiers .cpp dont vous avez besoin cette ligne, à portée globale, qui contient la définition de 'some_person'

struct Person some_person; 

Maintenant, chaque fichier .cpp qui doit accéder à la variable globale 'some_person' peut inclure le fichier person.h.

+0

Votre premier bit de code est une définition de struct, pas seulement une déclaration de structure. –