Dichiarazioni

Le dichiarazioni introducono nuovi nomi in un programma. Gli argomenti trattati in questa sezione includono i seguenti usi delle dichiarazioni.

Oltre a introdurre un nuovo nome, una dichiarazione consente di specificare che modo un identificatore deve essere interpretato dal compilatore. Le dichiarazioni non riservano automaticamente le risorse di archiviazione associate all'identificatore. Le definizioni riservano le risorse di archiviazione.

Nota

Molte delle dichiarazioni sono anche definizioni.Le dichiarazioni che non sono definizioni includono dichiarazioni di classe senza l'elenco dei membri e le dichiarazioni di funzioni senza il corpo della funzione.

Una dichiarazione può essere di:

[ decl-specifiers ] [ declarator-list ] ;

function-definition

linkage-specification

template-specification

modelli di alias

explicit-template-instantiation

explicit-template-specialization

namespace-definition

namespace-alias-definition

alias-declaration

using-declaration

using-directive

asm-definition

Il componente decl-specifiers di una dichiarazione viene mostrato come facoltativo; è tuttavia possibile ometterlo solo nelle dichiarazioni di tipi di classe o nelle enumerazioni.

I dichiaratori nel componente declarator-list contengono i nomi dichiarati. Benché il componente declarator-list sia mostrato come facoltativo, può essere omesso solo nelle dichiarazioni o nelle definizioni di una funzione.

Nota

La dichiarazione di una funzione è spesso chiamata prototipo.Un prototipo fornisce informazioni sul tipo riguardo gli argomenti e il tipo restituito della funzione.In aggiunta, un prototipo consente al compilatore di eseguire le conversioni corrette e contribuisce a garantire la sicurezza del tipo.

Un nome viene considerato dichiarato immediatamente dopo il proprio dichiaratore e prima del proprio inizializzatore (quest'ultimo è facoltativo). Per altre informazioni, vedere Punto di dichiarazione.

Le dichiarazioni avvengono in un ambito. L'ambito controlla la visibilità del nome dichiarato e la durata dell'oggetto definito, se presente. Per altre informazioni su come le regole di ambito interagiscono con le dichiarazioni, vedere Ambito.

Una dichiarazione dell'oggetto è anche una definizione, a meno che contenga l'identificatore di classi di archiviazione extern descritto in Identificatori di classi di archiviazione. Una dichiarazione di funzione è anche una definizione, a meno che non sia un prototipo. Un prototipo è un'intestazione di funzione senza un corpo di funzione di definizione. La definizione di un oggetto causa l'allocazione delle risorse di archiviazione e le inizializzazioni appropriate per tale oggetto.

Argomenti correlati

Per informazioni su function-definition, vedere Definizioni di funzioni C++.

Per informazioni su linkage-specification, vedere Specifiche dei collegamenti.

Per informazioni su template-specification, explicit-template-instantiation e explicit-template-specialization, vedere Modelli.

Per informazioni su namespace-definition e namespace-alias-definition, vedere Spazi dei nomi (C++).

Per informazioni su asm-definition, vedere __asm.

Vedere anche

Altre risorse

Riferimenti del linguaggio C++