Compartir a través de


Sintaxis de la declaración de función

Las funciones pueden ser globales o miembros de una clase o struct.Se declaran con la secuencia siguiente:

[friend] [storage-class-specifier] [function-specifier]
[[cv-qualifer] type-specifier] declarator [cv-qualifer] 
[exception-spec]
[friend] [storage-class-specifier] [function-specifier]
[[cv-qualifer] type-specifier] [*|&] [ms-modifer] identifier 
( argument-list ) [cv-qualifer] [exception-spec]
  1. El especificador de declaración.Vea especificadores.

    • dentro de una clase, un especificador opcional de friend .

    • Un especificador opcional de clase de almacenamiento.Para las funciones globales, los especificadores permitidos de clase de almacenamiento son Estática y extern.Para las funciones miembro de clase, extern no está permitido.

    • un especificador opcional de la función.Para las funciones globales, el único especificador permitido de la función es insertado. Para las funciones miembro de clase, virtual y Alineado se permiten y, para los constructores, explícito.

    • Un especificador de tipo que indica el tipo de valor devuelto (bajo la modificación a un puntero o un tipo de referencia el uso de * o y).

  2. El declarador.

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

    • Un modificador específico opcional de Microsoft que especifica la convención de llamada.Vea los modificadores concreto de Microsoft.

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

    • el argumento entre paréntesis **()**incluido enumerado declaración.

    • Una constante opcional o un calificador volatile.En este contexto, const sólo se puede utilizar para los miembros de clase, y se utiliza para indicar que la función no modificará los miembros de datos de la clase.

Si el tipo de valor devuelto es un puntero a función, la sintaxis de declaradores puede ser más compleja, como se explica más adelante.

  1. Una indicación opcional de la especificación de excepciones qué excepciones la función produce.Vea Especificaciones de excepciones.

El tipo de identificador de modo que declarado puede construirse como sigue: const o (si se especifica) función volatile, con la lista de argumentos especificada, devolviendo el tipo indicado por el especificador de declaración.

El ejemplo siguiente se muestran dos declaraciones de función simples:

char *strchr( char *dest, char *src );
static int atoi( const char *ascnum ) const;

Declarar las funciones que devuelven punteros a funciones

Se recomienda que typedef se usa para declarar un alias para el puntero a función tipo si declara una función que devuelve un tipo de puntero a función.Por ejemplo

typedef int (*fp)(int);
fp myFunction(char* s); // function returning function pointer

Si no es así, la sintaxis correcta para la declaración de función se puede deducir de la sintaxis de declaradores para el puntero a función reemplazando el identificador (fp en el ejemplo anterior) con el nombre y la lista de argumentos de funciones, como sigue:

int (*myFunction(char* s))(int);

La declaración anterior es equivalente a la declaración utilizando typedef anteriormente.

Vea también

Referencia

Declaraciones de función