Red de conocimientos turísticos - Información de alquiler - Inicializadores en el lenguaje de programación C

Inicializadores en el lenguaje de programación C

En C/C99/C++, un inicializador es una parte opcional de un declarador, que consta de un "=" y una expresión (o una lista de expresiones entre paréntesis separadas por ", "). Esta última lista a veces se denomina "lista de inicialización" o "lista de inicialización", pero en C++, una lista de inicialización también es una palabra reservada que se utiliza para inicializar elementos de una clase o estructura.

Una declaración que contiene inicialización suele denominarse definición. Según el estándar C++, una definición es un tipo declarado; específicamente, una declaración simplemente especifica el tipo de una función u objeto de datos, mientras que una definición también debe asignarle un valor inicial. Por lo tanto, el término "declaraciones y definiciones" no es estrictamente exacto, pero todavía se utiliza ampliamente. La definición de un constructor de clase/estructura (inglés: Constructor_(programación_orientada a objetos)) puede incluir una lista de inicialización antes del cuerpo del constructor para asignar valores iniciales a los elementos de la clase/estructura. Por ejemplo, el siguiente fragmento de código:

struct int_complex {

int re, estoy;

int_complex(): re(0), estoy(0){}

};

Aquí re(0), im(0) es la lista de inicialización.

A veces, el término "lista de inicialización" también se utiliza para referirse al grupo o expresión. listas en inicializadores de estructura.

En el estándar C++ 0x, también se proporciona un concepto de lista de inicialización más potente en forma de plantilla std:initializer_list, que también se puede utilizar sin uso explícito en el programa. Por ejemplo, si una variable estática no se inicializa cuando se declara (es decir, no se especifica ningún valor inicial):

Para tipos de datos locales: inicialícela con un valor cero del tipo correspondiente;

Para objetos estáticos en una clase: inicializar usando su constructor predeterminado