Partager via


Déclarations et définitions (C++)

déclarations indique au compilateur qu'un élément ou un nom de programme existe.définitions spécifient le code ou données son nom l'indique.Un nom doit être déclaré avant son utilisation.

Déclarations

une déclaration introduit un ou plusieurs noms dans un programme.Les déclarations peuvent se produire plusieurs fois dans un programme.Par conséquent, les classes, structures, ont énuméré les types, et d'autres types définis par l'utilisateur peuvent être déclarés pour chaque unité de compilation.La contrainte sur cette déclaration multiple est que toutes les déclarations doivent être identiques.Les déclarations servent également de définitions, sauf lorsque la déclaration :

  1. Est un prototype de fonction (une déclaration de fonction sans le corps de la fonction).

  2. Ne contient le spécificateur d' extern mais pas d'initialiseur (des objets et des variables) ou corps de la fonction (fonctions).Cela signifie que la définition n'est pas nécessairement dans l'unité de traduction actuelle et donne la liaison externe de nom.

  3. Consiste à une donnée membre statique dans une déclaration de classe.

    Étant donné que les données membres de classe statiques sont des variables discrètes partagées par tous les objets de la classe, elles doivent être définies et lancées en dehors de la déclaration de classe.(Pour plus d'informations sur les classes et des membres de la classe, consultez classes.)

  4. est une déclaration de nom de classe sans la définition suivante, telle qu' class T;.

  5. est une instruction d' typedef .

Les exemples de déclarations qui sont également des définitions sont :

// Declare and define int variables i and j.
int i;
int j = 10;

// Declare enumeration suits.
enum suits { Spades = 1, Clubs, Hearts, Diamonds };

// Declare class CheckBox.
class CheckBox : public Control
{
public:
            Boolean IsChecked();
    virtual int     ChangeState() = 0;
};

Des déclarations qui ne sont pas des définitions sont :

extern int i;
char *strchr( const char *Str, const char Target );

Définitions

Une définition est une seule spécification d'un objet ou une variable, fonction, classe, ou énumérateur.Étant donné que les définitions doivent être uniques, un programme peut contenir qu'une seule définition d'un élément de programme donné.Il peut y avoir une correspondance plusieurs-à-un entre les déclarations et les définitions.Il existe deux cas dans lesquels un élément de programme peut être déclaré et non défini :

  1. Une fonction est déclarée mais pas référencé jamais enregistrées avec un appel de fonction ou d'une expression qui prend l'adresse de la fonction.

  2. Une classe est utilisée uniquement d'une façon qui ne requiert pas sa définition soit connu.Toutefois, la classe doit être déclarée.Le code suivant illustre un tel cas :

    // definitions.cpp
    class WindowCounter;   // Forward reference; no definition
    
    class Window
    {
       // Definition of WindowCounter not required
       static WindowCounter windowCounter;
    };
    
    int main()
    {
    }
    

Voir aussi

Référence

Concepts de base