Dichiarazioni e definizioni (C++)

dichiarazioni indicare al compilatore che un elemento o un nome del programma esistente.definizioni specificare che il codice o dati il nome viene descritto.Un nome deve essere dichiarata prima che possa essere utilizzato.

Dichiarazioni

una dichiarazione introduce uno o più nomi in un programma.Le dichiarazioni possono verificarsi più volte in un programma.Di conseguenza, le classi, strutture, viene enumerato i tipi e altri tipi definiti dall'utente possono essere dichiarati per ogni unità di compilazione.Il vincolo su questa dichiarazione multipla è che tutte le dichiarazioni siano identiche.Le dichiarazioni anche fungono da definizioni, salvo quando la dichiarazione:

  1. È un prototipo di funzione (una dichiarazione di funzione senza il corpo della funzione.

  2. contiene extern identificatore e nessun inizializzatore (oggetti e variabili) o corpo della funzione (funzioni).Ciò significa che la definizione non è necessariamente nell'unità di conversione corrente e fornisce il collegamento esterno del nome.

  3. È un membro dati statici nella dichiarazione di classe.

    Poiché i membri dati di classe statici sono variabili discrete condivise da tutti gli oggetti della classe, devono essere definiti e inizializzati all'esterno della dichiarazione di classe.(Per ulteriori informazioni su classi e membri della classe, vedere classi).

  4. È la dichiarazione del nome di una classe senza la definizione seguente, ad esempio class T;.

  5. È un oggetto typedef istruzione.

Esempi di dichiarazioni che sono anche le definizioni sono:

// 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;
};

Alcune dichiarazioni non sono le definizioni sono:

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

Definizioni

Una definizione è una specifica istanza di un oggetto o una variabile, funzione, classe, o enumeratore.Poiché le definizioni devono essere univoche, un programma può contenere una sola definizione per un elemento del programma specificato.Può trattarsi di molto--u'a corrispondenza tra le dichiarazioni e definizioni.Esistono due casi in cui un elemento del programma può essere dichiarato e non definita:

  1. Una funzione è dichiarata ma non viene mai fatto riferimento tramite una chiamata di funzione o con un'espressione che accetta l'indirizzo della funzione.

  2. La classe viene utilizzata solo in una modalità che non richiede la definizione è noto.tuttavia, la classe deve essere dichiarata.Il codice seguente viene illustrato un questo caso:

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

Vedere anche

Riferimenti

Concetti di base