Struct en C++

Las estructuras en C++ son una herramienta fundamental para crear tipos de datos personalizados que agrupan diferentes tipos de datos relacionados. Son como plantillas que te permiten definir un conjunto de variables y funciones que se pueden usar para crear objetos con características y comportamientos específicos.

En este artículo, exploraremos el funcionamiento de las estructuras en C++, su sintaxis, las mejores prácticas para su uso y una variedad de ejemplos prácticos que te ayudarán a dominar esta poderosa herramienta.

Definición de una estructura

Para definir una estructura en C++, se utiliza la siguiente sintaxis:


struct nombre_estructura {
  tipo_de_dato nombre_miembro1;
  tipo_de_dato nombre_miembro2;
  ...
  tipo_de_dato nombre_miembroN;
};

Lenguaje del código: C++ (cpp)

Explicación:

  • struct: La palabra clave que indica la definición de una estructura.
  • nombre_estructura: El nombre de la estructura.
  • tipo_de_dato: El tipo de dato de cada miembro de la estructura.
  • nombre_miembro: El nombre de cada miembro de la estructura.

Ejemplo:


struct Persona {
  string nombre;
  int edad;
  float altura;
};

Lenguaje del código: C++ (cpp)

Explicación:

Esta estructura define un tipo de dato llamado Persona que tiene tres miembros: nombre, edad y altura.

Creación de objetos

Para crear un objeto de una estructura, se utiliza la siguiente sintaxis:


nombre_estructura nombre_objeto;

Lenguaje del código: C++ (cpp)

Explicación:

  • nombre_estructura: El nombre de la estructura.
  • nombre_objeto: El nombre del objeto que se crea.

Ejemplo:


Persona persona1;

Lenguaje del código: C++ (cpp)

Explicación:

Esta línea crea un objeto de la estructura Persona llamado persona1.

Acceso a los miembros de un objeto

Para acceder a los miembros de un objeto, se utiliza la siguiente sintaxis:


nombre_objeto.nombre_miembro

Lenguaje del código: C++ (cpp)

Explicación:

  • nombre_objeto: El nombre del objeto.
  • nombre_miembro: El nombre del miembro al que se desea acceder.

Ejemplo:


persona1.nombre = "Juan Pérez";
persona1.edad = 30;
persona1.altura = 1.75;

cout << persona1.nombre << endl; // Imprime "Juan Pérez"
cout << persona1.edad << endl; // Imprime 30
cout << persona1.altura << endl; // Imprime 1.75

Lenguaje del código: C++ (cpp)

Funciones con estructuras

Las estructuras se pueden pasar como argumentos a funciones y también se pueden devolver como resultado de una función.

Ejemplo:


void imprimirPersona(Persona persona) {
  cout << persona.nombre << endl;
  cout << persona.edad << endl;
  cout << persona.altura << endl;
}

int main() {
  Persona persona1;
  persona1.nombre = "Ana García";
  persona1.edad = 25;
  persona1.altura = 1.65;

  imprimirPersona(persona1);

  return 0;
}

Lenguaje del código: C++ (cpp)

Salida:

Ana García
25
1.65

Punteros a estructuras

Los punteros a estructuras son variables que almacenan la dirección de memoria de una variable de estructura.

Ejemplo:


Persona persona1;
Persona *ptrPersona;

ptrPersona = &persona1;

cout << "Nombre: " << ptrPersona->nombre << endl;
cout << "Edad: " << ptrPersona->edad << endl;
cout << "Altura: " << ptrPersona->altura << endl;

Lenguaje del código: C++ (cpp)

Salida:

Nombre: Juan Pérez
Edad: 30
Altura: 1.75

Consejos para usar estructuras de forma efectiva

  • Utiliza estructuras para agrupar datos relacionados: Las estructuras te permiten crear tipos de datos personalizados que agrupan datos relacionados, lo que facilita la organización y el manejo de tus datos.
  • Utiliza nombres descriptivos para las estructuras y sus miembros: Elegir nombres descriptivos para las estructuras y sus miembros te ayudará a comprender mejor tu código en el futuro.
  • Documenta tu código: Escribir comentarios claros y descriptivos te ayudará a comprender mejor tu código en el futuro.

Conclusión

Las estructuras en C++ son una herramienta poderosa para crear tipos de datos personalizados y mejorar la organización y el manejo de tus datos. Al comprender su funcionamiento y las mejores prácticas para su uso, podrás aprovechar al máximo esta herramienta para escribir código más eficiente, robusto y fácil de entender.