¿Qué es una estructura en C ++?
UNA ESTRUCTURA es una estructura de datos C ++ que se puede utilizar para almacenar juntos elementos de diferentes tipos de datos. En C ++, una estructura es un tipo de datos definido por el usuario. La estructura crea un tipo de datos para agrupar elementos de diferentes tipos de datos en un solo tipo de datos.
Por ejemplo:
Suponga que necesita almacenar información sobre alguien, su nombre, ciudadanía y edad. Puede crear variables como nombre, ciudadanía y edad para almacenar los datos por separado.
Sin embargo, es posible que deba almacenar información sobre muchas personas en el futuro. Significa que se crearán variables para diferentes individuos. Por ejemplo, nombre1, ciudadanía1, edad1, etc. Para evitar esto, es mejor crear una estructura.
En este tutorial de C ++, aprenderá:
- ¿Qué es una estructura en C ++?
- ¿Cuándo usar una estructura?
- Inicialización de estructuras de C ++
- Crear instancias de estructura
- Acceso a miembros de estructura
- Indicadores de estructura
- Argumento de estructura como función
- Limitación de una estructura C ++
¿Cuándo usar una estructura?
Aquí hay algunas razones para usar la estructura en C ++.
- Utilice una estructura cuando necesite almacenar elementos de diferentes tipos de datos en un tipo de datos.
- Las estructuras de C ++ son un tipo de valor en lugar de un tipo de referencia. Utilice una estructura si no tiene la intención de modificar sus datos después de la creación.
Inicialización de estructuras de C ++
Para crear una estructura C ++, usamos la palabra clave struct, seguida de un identificador. El identificador se convierte en el nombre de la estructura. Aquí está la sintaxis para la creación de una estructura C ++:
Sintaxis:
struct struct_name{// struct members}
En la sintaxis anterior, hemos utilizado la palabra clave struct. Struct_name es el nombre de la estructura.
Los miembros de la estructura se agregan entre llaves. Estos miembros probablemente pertenecen a diferentes tipos de datos.
Por ejemplo:
struct Person{char name[30];int citizenship;int age;}
En el ejemplo anterior, Person es una estructura con tres miembros. Los miembros incluyen nombre, ciudadanía y edad. Un miembro es del tipo de datos char, mientras que los 2 restantes son números enteros cuando se crea una estructura, no se asigna memoria. La memoria solo se asigna después de agregar una variable a la estructura.
Crear instancias de estructura
En el ejemplo anterior, hemos creado una estructura llamada Persona. Podemos crear una variable de estructura de la siguiente manera:
Person p;
La p es una variable de estructura de tipo Person. Podemos usar esta variable para acceder a los miembros de la estructura.
Acceso a miembros de estructura
Para acceder a los miembros de la estructura, usamos la instancia de la estructura y el operador punto (.). Por ejemplo, para acceder a la edad del miembro de struct Person:
p.age = 27;
Hemos accedido a la edad del miembro de la estructura Person usando la instancia de la estructura, p. Luego, hemos establecido el valor de la edad del miembro en 27.
Ejemplo 1:
#includeusing namespace std;struct Person{int citizenship;int age;};int main(void) {struct Person p;p.citizenship = 1;p.age = 27;cout << "Person citizenship: " << p.citizenship << endl;cout << "Person age: " << p.age << endl;return 0;}
Producción:
Aquí hay una captura de pantalla del código:
Explicación del código:
- Incluya el archivo de encabezado de iostream en nuestro programa para usar las funciones definidas en él.
- Incluya el espacio de nombres estándar para usar sus clases sin llamarlo.
- Cree una estructura llamada Persona.
- El comienzo del cuerpo de la estructura.
- Cree un miembro de estructura llamado ciudadanía de tipo entero.
- Cree un miembro de estructura llamado edad de tipo entero.
- Fin del cuerpo de la estructura.
- Llame a la función main (). La lógica del programa debe agregarse dentro del cuerpo de esta función.
- Cree una instancia de la estructura Person y dándole el nombre p.
- Establezca el valor de ciudadanía de los miembros de la estructura en 1.
- Establezca el valor de la edad del miembro de la estructura en 27.
- Imprima el valor de la ciudadanía del miembro de la estructura en la consola junto con otro texto.
- Imprima el valor de la edad del miembro de la estructura en la consola junto con otro texto.
- El programa debería devolver un valor si se ejecuta correctamente.
- Fin de la función main ().
Indicadores de estructura
Es posible crear un puntero que apunte a una estructura. Es similar a cómo se crean los punteros que apuntan a tipos de datos nativos como int, float, double, etc. Tenga en cuenta que un puntero en C ++ almacenará una ubicación de memoria.
Ejemplo 2:
#includeusing namespace std;struct Length{int meters;float centimeters;};int main(){Length *ptr, l;ptr = &l;cout << "Enter meters: ";cin >> (*ptr).meters;cout << "Enter centimeters: ";cin >> (*ptr).centimeters;cout << "Length = " << (*ptr).meters << " meters " << (*ptr).centimeters << " centimeters";return 0;}
Producción:
Aquí hay una captura de pantalla del código:
Explicación del código:
- Incluya el archivo de encabezado de iostream en nuestro programa para usar sus funciones.
- Incluya el espacio de nombres std en nuestro programa para usar sus clases sin llamarlo.
- Cree una estructura denominada Longitud.
- Inicio del cuerpo de la estructura Longitud.
- Cree un miembro de estructura llamado metros de tipo de datos enteros.
- Cree un miembro de estructura denominado centímetros de tipo entero.
- Fin del cuerpo de la estructura Longitud.
- Llame a la función main ().
- Inicio del cuerpo de la función main ().
- Cree una variable de puntero * ptr y una variable normal l de tipo Longitud.
- Almacene la dirección de la variable l en nuestra variable de puntero.
- Muestre un mensaje en la consola, pidiendo al usuario que ingrese el valor de los medidores variables.
- Leer el valor ingresado por el usuario a través del teclado. Aquí se accede a los medidores de función miembro usando la variable de puntero.
- Muestre un mensaje en la consola, pidiendo al usuario que ingrese el valor de centímetros variables.
- Leer el valor ingresado por el usuario a través del teclado. Aquí se accede a la función miembro centímetros utilizando la variable de puntero.
- Muestre los valores leídos por el usuario en la consola junto con algún otro texto.
- El programa debe devolver un valor tras una ejecución exitosa.
- Fin del cuerpo de la función main ().
Argumento de estructura como función
Puede pasar una estructura a una función como argumento. Esto se hace de la misma manera que se pasa un argumento normal. Las variables de estructura también se pueden pasar a una función. Un buen ejemplo es cuando necesita mostrar los valores de los miembros de la estructura. Demostremos esto:
Ejemplo 3:
#includeusing namespace std;struct Person{int citizenship;int age;};void func(struct Person p);int main(){struct Person p;p.citizenship = 1;p.age = 27;func(p);return 0;}void func(struct Person p){cout << " Person citizenship: " << p.citizenship< Producción:
Aquí hay una captura de pantalla del código:
Explicación del código:
- Incluya el archivo de encabezado de iostream en nuestro archivo. Luego usaremos sus funciones sin obtener errores.
- Incluya el espacio de nombres std en nuestro programa para usar sus clases. No necesitaremos llamar al espacio de nombres para usar sus clases.
- Cree una estructura llamada Persona.
- Inicio del cuerpo de la estructura Person.
- Cree un miembro de la estructura Person. El miembro se llama ciudadanía y es de tipo entero.
- Cree un miembro de la estructura Person. El miembro se denomina age y es de tipo integer.
- Fin del cuerpo de la estructura Person.
- Cree una función que tome la instancia de struct Person, p, como argumento.
- Llame a la función principal. El {marca el comienzo del cuerpo de la función main ().
- Cree una instancia de struct Person y dándole el nombre p.
- Acceda a la ciudadanía de la variable miembro de estructura utilizando la instancia de la estructura, p, y asignándole el valor 1.
- Acceda a la edad de la variable de miembro de estructura utilizando la instancia de la estructura, p, y asignándole el valor 27.
- Llame a la función y le pase la instancia de la estructura Person, p, como argumento.
- La función debe devolver un valor tras una ejecución exitosa.
- Fin del cuerpo de la función main ().
- Crea el cuerpo de la función.
- El inicio del cuerpo de la función.
- Acceda al valor de ciudadanía del miembro de la estructura e imprímalo en la consola junto con otro texto.
- Acceda al valor de edad del miembro de estructura e imprímalo en la consola junto con otro texto.
- Fin del cuerpo de la función.
Limitación de una estructura C ++
Las siguientes son las limitaciones de las estructuras:
- El tipo de datos de estructura no se puede tratar como tipos de datos integrados.
- Los operadores como + - y otros no se pueden usar en variables de estructura.
- Las estructuras no admiten la ocultación de datos. Cualquier función puede acceder a los miembros de una estructura independientemente de su alcance.
- Los miembros estáticos no se pueden declarar dentro del cuerpo de la estructura.
- Los constructores no se pueden crear dentro de una estructura.
Resumen:
- Una estructura es una estructura de datos que almacena elementos de datos que pertenecen a diferentes tipos.
- Mientras que una matriz almacena elementos de datos de un tipo similar, una estructura almacena elementos de datos de diferentes tipos.
- Se debe utilizar una estructura cuando no se espera que los elementos de datos cambien de valor.
- Se accede a los miembros de una estructura mediante el operador de punto (.).
- Tenemos que crear una instancia de la estructura.
- Para crear una estructura C ++, usamos la palabra clave struct.
- Los punteros que apuntan a una estructura se crean de manera similar a como se crean los punteros que apuntan a tipos regulares.
- Una estructura se puede pasar como argumento a una función de la misma forma que se pasan las funciones ordinarias.