Definición de Estructuras Anidadas

En una estructura anidada, una de las estructuras (llamada estructura secundaria) se utiliza como un campo dentro de otra estructura (llamada estructura principal). A continuación se muestra un ejemplo que ilustra este concepto.

Ejemplo de Código:

#include<iostream>
#include<conio.h>

using namespace std;

// Definición de la estructura para la dirección
struct info_direccion {
    char direccion[30];
    char ciudad[20];
    char provincia[20];
};

// Definición de la estructura para el empleado
struct empleado {
    char nombre[20];
    struct info_direccion dir_empleado; // Estructura anidada
    double salario;
};

// Función principal
int main() {
    // Crear una instancia de la estructura empleado
    empleado emp1;

    // Asignar valores a los campos de la estructura anidada
    strcpy(emp1.nombre, "Juan Pérez");
    strcpy(emp1.dir_empleado.direccion, "Av. Libertador 1234");
    strcpy(emp1.dir_empleado.ciudad, "Buenos Aires");
    strcpy(emp1.dir_empleado.provincia, "Ciudad Autónoma de Buenos Aires");
    emp1.salario = 35000.50;

    // Mostrar los datos del empleado
    cout << "Nombre: " << emp1.nombre << endl;
    cout << "Dirección: " << emp1.dir_empleado.direccion << endl;
    cout << "Ciudad: " << emp1.dir_empleado.ciudad << endl;
    cout << "Provincia: " << emp1.dir_empleado.provincia << endl;
    cout << "Salario: " << emp1.salario << endl;

    getch(); // Espera a que el usuario presione una tecla
    return 0;
}

Explicación:

  1. Definición de la Estructura Secundaria:

    • La estructura info_direccion contiene campos para almacenar información relacionada con la dirección, como direccion, ciudad, y provincia.
  2. Definición de la Estructura Principal:

    • La estructura empleado contiene tres campos: nombre (para el nombre del empleado), dir_empleado (una instancia de info_direccion, lo que permite anidar la estructura info_direccion dentro de empleado), y salario (para el salario del empleado).
  3. Asignación de Valores y Acceso a Datos:

    • En el programa principal (main), se crea una instancia de empleado llamada emp1. Se asignan valores a los campos de emp1, incluyendo los campos de la estructura anidada dir_empleado.
    • Se utiliza strcpy para copiar cadenas de texto en los campos nombre, direccion, ciudad, y provincia. Este es un método para asignar valores a arreglos de caracteres en C++.
    • Finalmente, se imprimen los valores de emp1 en la pantalla utilizando cout.

Ventajas de las Estructuras Anidadas

  • Organización: Permiten organizar datos complejos en una forma estructurada y lógica.
  • Modularidad: Facilitan la reutilización de estructuras en diferentes contextos.
  • Legibilidad: Mejoran la legibilidad del código al agrupar datos relacionados bajo una sola estructura.

Las estructuras anidadas son útiles en muchas aplicaciones donde se necesita una representación más detallada y organizada de los datos, como en la gestión de información de empleados, clientes, productos, entre otros.