Introducción a la inicialización de estados en una variable en C++14

La inicialización de estados en una variable en C++14 es una técnica fundamental para asegurar que las variables tengan valores definidos y predecibles desde el momento en que se crean. En C++14, se introdujeron y mejoraron varias formas de inicialización que permiten a los desarrolladores escribir código más claro y menos propenso a errores.

 

#include <iostream>

#include <vector>

struct Point {

int x;

int y;

};

int main() {

// Inicialización directa

int a = 10;


// Inicialización uniforme

int b{ 20 };


// Inicialización de lista

std::vector<int> v = { 1, 2, 3, 4, 5 };


// Inicialización de valor

int c{};


// Inicialización de agregado

Point p = { 1, 2 };


// Mostrar los valores

std::cout << "a: " << a << std::endl;

std::cout << "b: " << b << std::endl;

std::cout << "c: " << c << std::endl;

std::cout << "v: ";

for (int i : v) {

std::cout << i << " ";

}

std::cout << std::endl;

std::cout << "p: (" << p.x << ", " << p.y << ")" << std::endl;


system("pause");

return 0;

}

Resultado:




int a = 10: Esta es la forma más común de inicialización, donde se asigna un valor directamente a la variable.

int b{ 20 }: Introducida en C++11 y mejorada en C++14, la inicialización uniforme utiliza llaves {} para inicializar variables. Esta forma es más segura y evita conversiones implícitas no deseadas.

std::vector<int> v = { 1, 2, 3, 4, 5 }: Permite inicializar contenedores y otros tipos de datos con una lista de valores.

int c{}: Asegura que la variable se inicialice con un valor predeterminado (por ejemplo, 0 para tipos enteros).

Point p = { 1, 2 }: Permite inicializar estructuras y clases con una lista de valores.

 *************

Una inicialización por copia obtiene el valor de una variable existente y ser utilizado para inicializar otra variable.

 

#include <iostream>

int main() {

// Inicialización de la primera variable

int a = 10;


// Inicialización de la segunda variable con el valor de la primera

int b = a;


// Mostrar los valores

std::cout << "Valor de a: " << a << std::endl;

std::cout << "Valor de b: " << b << std::endl;


// Modificar el valor de a

a = 20;


// Mostrar los valores después de la modificación

std::cout << "Valor de a: " << a << std::endl;

std::cout << "Valor de b: " << b << std::endl;


system("pause");

return 0;

}

 Resultado:

 


 

int b = a es una inicialización por copia, donde el valor de una variable existente se utiliza para inicializar otra variable.

a = 20 es una asignación, donde se cambia el valor de la variable existente. El valor de b no cambió cuando se modificó a ya que b recibió una copia del valor de a en el momento de la inicialización, no después.

 

#include <iostream>

int main() {

int a = 10;

int b = a;


std::cout << "Valor de a: " << a << std::endl;

std::cout << "Valor de b: " << b << std::endl;


a = 20;

b = a;


std::cout << "Valor de a: " << a << std::endl;

std::cout << "Valor de b: " << b << std::endl;


system("pause");

return 0;

}

 

 Resultado:

 


 ***********

 

En C++14 existe una forma de asegurar que una variable siempre refleje el valor de otra variable. Esto se puede lograr utilizando referencias. Una referencia es un alias para otra variable, lo que significa que cualquier cambio en la variable original también se reflejará en la referencia.

 

#include <iostream>

int main() {

// Inicialización de la primera variable

int a = 10;


// Crear una referencia a la variable a

int &b = a;


// Mostrar los valores

std::cout << "Valor de a: " << a << std::endl;

std::cout << "Valor de b: " << b << std::endl;


// Modificar el valor de a

a = 20;


// Mostrar los valores después de la modificación

std::cout << "Valor de a: " << a << std::endl;

std::cout << "Valor de b: " << b << std::endl;


// Modificar el valor a través de la referencia b

b = 30;


// Mostrar los valores después de la modificación a través de la referencia

std::cout << "Valor de a: " << a << std::endl;

std::cout << "Valor de b: " << b << std::endl;


system("pause");

return 0;

}

 

Resultado:



int &b = a: Cuando se utiliza en la declaración de una variable, & indica que la variable es una referencia. Una referencia es un alias para otra variable, lo que significa que cualquier cambio en la referencia se reflejará en la variable original y viceversa.

Comentarios

Entradas populares de este blog

Introducción al sistema de los tipos de datos en C++14

Introducción a C++14