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:
È un prototipo di funzione (una dichiarazione di funzione senza il corpo della funzione.
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.
È 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).
È la dichiarazione del nome di una classe senza la definizione seguente, ad esempio class T;.
È 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:
Una funzione è dichiarata ma non viene mai fatto riferimento tramite una chiamata di funzione o con un'espressione che accetta l'indirizzo della funzione.
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() { }