Share via


Declaraciones

Las declaraciones introducen nuevos nombres en un programa. Entre los temas que se tratan en esta sección se incluyen los usos de las declaraciones.

Además de introducir un nuevo nombre, una declaración especifica cómo debe interpretar el compilador un identificador. Las declaraciones no reservan automáticamente el almacenamiento asociado al identificador. Las definiciones reservan el almacenamiento.

Nota

La mayoría de las declaraciones son también definiciones.Entre las declaraciones que no son definiciones se incluyen las declaraciones de clase sin la lista de miembros y las declaraciones de función sin el cuerpo de la función.

Una declaración puede ser una de las siguientes:

[ decl-specifiers ] [ declarator-list ] ;

function-definition

linkage-specification

template-specification

plantillas de alias

explicit-template-instantiation

explicit-template-specialization

namespace-definition

namespace-alias-definition

alias-declaration

using-declaration

using-directive

asm-definition

El componente decl-specifiers de una declaración se muestra como opcional; sin embargo, solo se puede omitir en las declaraciones de tipos de clase o de enumeraciones.

Los declaradores del componente declarator-list contienen los nombres que se van a declarar. Aunque declarator-list se muestre como opcional, solo se puede omitir en las declaraciones o definiciones de una función.

Nota

La declaración de una función se suele denominar un prototipo.Un prototipo proporciona información sobre los tipos de los argumentos y el tipo del valor devuelto de la función.Además, un prototipo permite al compilador realizar conversiones correctas y ayuda a proporcionar seguridad de tipos.

Se considera que un nombre se declara inmediatamente después de su declarador pero antes de su inicializador (opcional). Para más información, vea Punto de declaración.

Las declaraciones tienen lugar en un ámbito. El ámbito controla la visibilidad del nombre declarado y la duración del objeto definido, si existe. Para obtener más información sobre cómo interactúan las reglas de ámbito con las declaraciones, vea Ámbito.

Una declaración de objeto es también una definición a menos que contenga el especificador de clase de almacenamiento extern que se describe en Especificadores de clase de almacenamiento. Una declaración de función es también una definición a menos que sea un prototipo. Un prototipo es un encabezado de función sin un cuerpo de definición de la función. La definición de un objeto provoca la asignación del almacenamiento y las inicializaciones adecuadas para ese objeto.

Temas relacionados

Para información sobre function-definition, vea Definiciones de funciones de C++.

Para obtener información sobre linkage-specification, vea Especificaciones de vinculación.

Para obtener información sobre template-specification, explicit-template-instantiation y explicit-template-specialization, vea Plantillas.

Para obtener información sobre namespace-definition y namespace-alias-definition, vea Espacios de nombres (C++).

Para obtener información sobre asm-definition, vea __asm.

Vea también

Otros recursos

Referencia de lenguaje C++