|

60. C++ || Estructuras acceso

Antes de empezar, debo aclarar que cuando me refiera al término “acceso a una estructura”, me referiré a acceder a los miembros que esta posee. Es decir, recuerden que cuando se declara una variable de tipo estructura, dicha variable contiene absolutamente todos los miembros con la cual fue declarada la estructura. Pero ahora, pensemos en ¿cómo manipular eso miembros, cómo acceder a ellos para darle un valor, o incluso mostrarlos en pantalla? De eso se trata esta parte.

Cuando accedemos a una estructura, lo hacemos con el fin de almacenar información o bien, recuperarla. Esto lo haremos de dos maneras:

  1. Utilizando el operador punto (.).
  2. Utilizando el operador puntero (-&gt).

Almacenamiento de información en una estructura

Acceso a una estructura mediante el operador punto (.)

La sintaxis para almacenar datos en una estructura en C++ es la siguiente:

&ltNombre de la variable estructura&gt . &ltNombre miembro&gt = &ltValor>

Donde:

  • Nombre de la variable estructura. Nombre con el cual fue declarada una variable de tipo estructura.
  • Nombre miembro. Nombre de un miembro de la estructura.
  • Valor. Valor que se le quiera dar a ese miembro de la estructura.

Nota: Valor y Nombre miembro deben ser del mismo tipo de dato.

Recordando la estructura del ejemplo pasado, los siguientes ejemplos son totalmente válidos:

cd1.titulo = “El mejor disco”;
cd1.precio = 19.99;
cd1.numCanciones = 20;

El operador punto lo que hace es dar un camino exacto al miembro correspondiente de la estructura, los datos que queramos almacenar, deberán coincidir con el tipo de dato que corresponde al miembro de la estructura, es decir, los siguientes ejemplos no serán válidos:

cd1.titulo = 838392;
cd1.precio = ‘a’;
cd1.numCanciones = “Ninguna cancion”;

De esta forma, si declaran un miembro de una estructura de tipo int, el compilador va a esperar a que se ingresen números enteros, en caso contrario, se producirá un resultado no esperado, o creará un error.

Acceso a una estructura mediante el operador puntero (-&gt)

La sintaxis es igual que la anterior, la diferencia radica que en vez de utilizar un punto (.), se utiliza el operador puntero (-&gt). Ejemplo:

&ltNombre de la variable estructura&gt -&gt &ltNombre miembro&gt = &ltValor>

Para utilizar este operador, primero se debe definir la variable como un puntero que apunte a la estructura. Haciendo uso de la estructura anterior, podemos usar este operador de la siguiente forma:

discos_CD* punteroDisco;

punteroDisco -&gt titulo = “El mejor disco”;
punteroDisco -&gt precio = 19.99;
punteroDisco -&gt numCanciones = 20;

Nota: El tema de punteros se verá un poco más adelante.

Lectura de información de una estructura

Si lo que queremos es introducir un valor a un miembro de la estructura por el teclado, lo haríamos de la misma manera que hemos hecho hace poco, pero ahora usando el objeto cin. Por ejemplo:

Con el operador punto:

cout << "Ingresa el titulo del CD normaln";
cin.getline(normal_CD.titulo,30);
cout << "Ingresa el artista del CD normaln";
cin.getline(normal_CD.artista,20);
cout << "Ingresa el numero de canciones del CD normaln";
cin >> normal_CD.numCanciones;
cout << "Ingresa el precio del CD normaln";
cin >> normal_CD.precio;

Con el operador puntero:

cout << "Ingresa el titulo del CD punteron";
cin.getline(puntero_CD -> titulo,30);
cout << "Ingresa el artista del CD punteron";
cin.getline(puntero_CD -> artista,20);
cout << "Ingresa el numero de canciones del CD punteron";
cin >> puntero_CD -> numCanciones;
cout << "Ingresa el precio del CD punteron";
cin >> puntero_CD -> precio;

Nota: No existe un orden para almacenar datos en una estructura, si lo hice de esa manera, fue sólo por comodidad. Así que pude haber ingresado primero los datos del precio que el titulo del CD.

Para mostrar el contenido almacenado en los miembros de la estructura se hace de manera similar, sólo hay que cambiar el objeto cin por el objeto cout.

Recuperación de información de una estructura

Para hacer esto usamos el operador de asignación o una sentencia cout. Al igual que como ya hemos hecho, podemos usar el operador punto, o el operador puntero. Por ejemplo:

&ltNombre variable&gt = &ltNombre variable estructura&gt . &ltNombre miembro>

O bien, cuando se utiliza un puntero:

&ltNombre variable&gt = &ltPuntero estructura&gt -&gt &ltNombre miembro>

Y para mostrar en pantalla:

cout &lt&lt &ltNombre variable estructura&gt . &ltNombre miembro>

Y para el caso de un puntero:

cout &lt&lt &ltPuntero estructura&gt -&gt &ltNombre miembro>

Los siguientes son ejemplos del uso de la estructura discos_CD

totalCanciones = cd1.numCanciones + cd2.numCanciones;
precio = cd1.precio;
cout << cd1.titulo;
artista = cd3 -&gt artista; 
cout << cd3 -&gt precio;

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *