C++ 17 | Nuevas formas de asignar valores a las variables

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:

  1. 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.

  2. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *