Estructuras, Uniones y Enumeraciones en C++

En este artículo, discutiremos estructuras, uniones y enumeraciones y sus diferencias.

  • La estructura es un tipo de datos definido por el usuario que está disponible en C++ .
  • Las estructuras se usan para combinar diferentes tipos de tipos de datos, al igual que una array se usa para combinar el mismo tipo de tipos de datos.
  • Una estructura se declara usando la palabra clave » struct «. Cuando declaramos una variable de la estructura necesitamos escribir la palabra clavestruct en lenguaje C pero para C++ la palabra clave no es obligatoria

Sintaxis:

struct 
{
   // Declaration of the struct
}

A continuación se muestra el programa C++ para demostrar el uso de struct:

C++

// C++ program to demonstrate the
// making of structure
#include <bits/stdc++.h>
using namespace std;
 
// Define structure
struct GFG {
    int G1;
    char G2;
    float G3;
};
 
// Driver Code
int main()
{
    // Declaring a Structure
    struct GFG Geek;
    Geek.G1 = 85;
    Geek.G2 = 'G';
    Geek.G3 = 989.45;
    cout << "The value is : "
         << Geek.G1 << endl;
    cout << "The value is : "
         << Geek.G2 << endl;
    cout << "The value is : "
         << Geek.G3 << endl;
 
    return 0;
}
Producción

The value is : 85
The value is : G
The value is : 989.45

Explicación: En el código anterior, se asignan valores a los campos (G1, G2, G3) de la estructura empleado y al final se imprime el valor de “salario”.

Estructura usando typedef : typedef es una palabra clave que se usa para asignar un nuevo nombre a cualquier tipo de datos existente. A continuación se muestra el programa C++ que ilustra el uso de struct usando typedef :

C++

// C++ program to demonstrate the use
// of struct using typedef
#include <bits/stdc++.h>
using namespace std;
 
// Declaration of typedef
typedef struct GeekForGeeks {
 
    int G1;
    char G2;
    float G3;
 
} GFG;
 
// Driver Code
int main()
{
    GFG Geek;
    Geek.G1 = 85;
    Geek.G2 = 'G';
    Geek.G3 = 989.45;
 
    cout << "The value is : "
         << Geek.G1 << endl;
 
    cout << "The value is : "
         << Geek.G2 << endl;
 
    cout << "The value is : "
         << Geek.G3 << endl;
 
    return 0;
}
Producción

The value is : 85
The value is : G
The value is : 989.45

Explicación:

  • En el código anterior, la palabra clave “ typedef ” se usa antes de struct y después del paréntesis de cierre de estructura, se escribe “ GFG ”.
  • Ahora cree variables de estructura sin usar la palabra clave » struct » y el nombre de la estructura.
  • Se ha creado una instancia de estructura llamada «Geek» simplemente escribiendo » GFG » antes.

Uniones : una unión es un tipo de estructura que se puede usar donde la cantidad de memoria utilizada es un factor clave. 

A continuación se muestra el programa C++ que ilustra la implementación de la unión:

C++

// C++ program to illustrate the use
// of the unions
#include <iostream>
using namespace std;
 
// Defining a Union
union GFG {
    int Geek1;
    char Geek2;
    float Geek3;
};
 
// Driver Code
int main()
{
    // Initializing Union
    union GFG G1, G2, G3;
 
    G1.Geek1 = 34;
    G2.Geek2 = 34;
    G3.Geek3 = 34.34;
 
    // Printing values
    cout << "The first value at "
         << "the allocated memory : "
         << G1.Geek1 << endl;
 
    cout << "The next value stored "
         << "after removing the "
         << "previous value : "
         << G2.Geek2 << endl;
 
    cout << "The Final value value "
         << "at the same allocated "
         << "memory space : "
         << G3.Geek3 << endl;
    return 0;
}
Producción

The first value at the allocated memory : 34
The next value stored after removing the previous value : "
The Final value value at the same allocated memory space : 34.34

Explicación: En el código anterior, a la variable Geek2 se le asigna un número entero (34). Pero al ser de tipo char, el valor se transforma mediante coerción en su equivalente char (“). Este resultado se muestra correctamente en la sección Salida.

Enumeraciones : las enumeraciones son tipos definidos por el usuario que consisten en constantes integrales con nombre.

  • Ayuda a asignar constantes a un conjunto de nombres para que el programa sea más fácil de leer, mantener y comprender.
  • Una enumeración se declara utilizando la palabra clave » enum «.

A continuación se muestra el programa C++ que ilustra el uso de enum:

C++

// C++ program to illustrate the use
// of the Enums
 
#include <bits/stdc++.h>
using namespace std;
 
// Defining  an enum
enum GeeksforGeeks { Geek1,
                     Geek2,
                     Geek3 };
 
GeeksforGeeks G1 = Geek1;
GeeksforGeeks G2 = Geek2;
GeeksforGeeks G3 = Geek3;
 
// Driver Code
int main()
{
    cout << "The numerical value "
         << "assigned to Geek1 : "
         << G1 << endl;
 
    cout << "The numerical value "
         << "assigned to Geek2 : "
         << G2 << endl;
 
    cout << "The numerical value "
         << "assigned to Geek3 : "
         << G3 << endl;
 
    return 0;
}
Producción

The numerical value assigned to Geek1 : 0
The numerical value assigned to Geek2 : 1
The numerical value assigned to Geek3 : 2

Explicación: en el código anterior, las constantes nombradas como Geek1, Geek2 y Geek3 tienen valores integrales asignados como 0, 1, 2 respectivamente mientras se proporciona la salida.

Publicación traducida automáticamente

Artículo escrito por analystayush 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 *