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:
Definición de la Estructura Secundaria:
- La estructura
info_direccioncontiene campos para almacenar información relacionada con la dirección, comodireccion,ciudad, yprovincia.
- La estructura
Definición de la Estructura Principal:
- La estructura
empleadocontiene tres campos:nombre(para el nombre del empleado),dir_empleado(una instancia deinfo_direccion, lo que permite anidar la estructurainfo_direcciondentro deempleado), ysalario(para el salario del empleado).
- La estructura
Asignación de Valores y Acceso a Datos:
- En el programa principal (
main), se crea una instancia deempleadollamadaemp1. Se asignan valores a los campos deemp1, incluyendo los campos de la estructura anidadadir_empleado. - Se utiliza
strcpypara copiar cadenas de texto en los camposnombre,direccion,ciudad, yprovincia. Este es un método para asignar valores a arreglos de caracteres en C++. - Finalmente, se imprimen los valores de
emp1en la pantalla utilizandocout.
- En el programa principal (
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.