Compartir a través de


Definiciones de funciones de C++

Las definiciones de función difieren de las declaraciones de función en que proporcionan los cuerpos de funciones (el código que conforma la función). La forma de una definición de función es:

decl-specifiers declarator [cv-qualifers] [exception-specification]
{
   // function body
}
decl-specifiers declarator [cv-qualifers] =default;

decl-specifiers declarator [cv-qualifers] =delete;

Las partes de la definición son:

  • Los especificadores de declaración, como se describe en Declaraciones de función.

  • El declarador (descrito más adelante en este artículo).

  • Un calificador const o volatile opcional. En este contexto, const solo se puede usar para miembros de clase, para indicar que la función no modificará miembros de datos de la clase.

  • Una especificación de excepción que describe qué excepciones pueden provocar la función. Vea Especificaciones de excepción.

  • El cuerpo de la función, compuesto de las instrucciones incluidas en entre llaves {}.

  • =default; en el caso de una definición establecida explícitamente como valor predeterminado.

  • =delete; en el caso de una definición eliminada.

El formato del declarador es:

  • Puntero u operadores de referencia opcionales que modifican el tipo de valor devuelto.

  • Modificador opcional concreto de Microsoft. Vea Modificadores específicos de Microsoft.

  • Nombre de la función. Si la función es un miembro de una clase o struct, el nombre se puede calificar mediante el operador de resolución de ámbito.

  • La lista de declaración de argumentos entre paréntesis ().

  • Para los constructores, un inicializador opcional de constructor (descrito más adelante en este artículo).

Para obtener información sobre la forma de declaradores en casos como este, vea los comentarios de Declaraciones de función sobre las funciones que devuelven punteros de función.

Los argumentos formales declarados en la lista de declaraciones de argumentos están en el ámbito del cuerpo de la función.

La ilustración siguiente muestra las partes de una definición de función. El área sombreada es el cuerpo de la función.

Elementos de definición de una función

Elementos de una definición de función

El elemento inicializador de constructor de la sintaxis solo se utiliza en los constructores. Su objetivo es permitir la inicialización de clases base y objetos contenidos. Para obtener más información sobre el uso de inicializadores de constructor, vea Inicializar bases y miembros.

Una definición establecida explícitamente como valor predeterminado solo se puede declarar para una función miembro especial. Cuando una función especial miembro se establece explícitamente como valor predeterminado, la implementación la definirá como si tuviera una definición implícita, salvo que puede no estar alineada (una función miembro especial declarada implícitamente siempre está alineada). Para obtener más información sobre las funciones establecidas como valor predeterminado, vea la sección "Funciones establecidas como valor predeterminado y eliminadas", en Compatibilidad con las características de C++11 (C++ moderno).

Una definición eliminada, también conocida como función eliminada, está implícitamente alineada. Un programa que hace referencia a una función de manera explícita o implícita (si no es para declararla) tiene un formato incorrecto. Para obtener más información sobre las funciones eliminadas, vea la sección "Funciones establecidas como valor predeterminado y eliminadas", en Compatibilidad con las características de C++11 (C++ moderno).

Vea también

Referencia

Declaradores

Conceptos

Búsqueda de nombres dependientes de argumentos (Koenig) en las funciones