C++ 17 introdujo muchas formas nuevas de declarar una variable. La asignación y declaración anteriores se hacían usando “=”
Ejemplo:
int a = 5;
Pero ahora se introducen 2 formas más en C++17 . Están:
- Inicialización del constructor: De esta forma, el valor de la variable se encierra entre paréntesis (()). De esta forma, el valor se puede pasar de las dos formas que se muestran a continuación.
#include <iostream>
using
namespace
std;
// Driver Code
int
main()
{
// Declaring the variable in parentheses
// Method 1
int
a(5);
cout <<
"a = "
<< a;
// Declaring the variable in parentheses
// Method 2
int
b = (10);
cout << endl
<<
"b = "
<< b;
return
0;
}
Producción:
a = 5 b = 10
Explicación
En C++ 17, la variable también se puede declarar proporcionando valores entre paréntesis. La diferencia entre la inicialización del constructor y la antigua forma normal de inicialización es que siempre devolverá el último valor entre paréntesis sin importar cuál sea su magnitud o signo.Por ejemplo,
a=(2, 21, -50, 1)
El valor almacenado en a sería 1.
- Inicialización uniforme: De esta manera, el valor de la variable se encierra entre llaves ( {} ) en lugar de paréntesis. De esta forma, el valor se puede pasar de las dos formas que se muestran a continuación.
#include <iostream>
using
namespace
std;
int
main()
{
// Declaring the variable in curly braces
// Method 1
int
a{ 3 };
cout <<
"a = "
<< a;
// Declaring the variable in curly braces
// Method 2
int
b = { 7 };
cout << endl
<<
"b = "
<< b;
return
0;
}
Producción:
a = 3 b = 7
A diferencia de la inicialización de Constructor, este método de asignación solo puede tomar un valor entre llaves. Proporcionar múltiples valores devolvería un error de compilación.
Por ejemplo,
int b={7, 12};
Producción
prog.cpp: In function 'int main()': prog.cpp:9:12: error: scalar object 'b' requires one element in initializer int b={7, 12}; ^
Publicación traducida automáticamente
Artículo escrito por Kartikaybhutani y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA