No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Uniones y enumeraciones

6/16
Recursos

Aportes 6

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Los punteros parecen ser una de las cosas m谩s complicadas que entender de C++ como lenguaje de bajo nivel.

Siempre he sido de las personas que necesita encontrar un sentido pr谩ctico a lo que aprende para poder retenerlo.

Los punteros son de gran ayuda cuando quieres pasar m谩s de 1 par谩metro entre funciones, si lo piensas bien las funciones en c++ permiten pasarle varios argumentos a una funci贸n, pero esta solo tiene 1 return.
Intenta desarrollar un programa donde utilices los punteros como medios para retornar 鈥淪acar鈥 m谩s variables de un llamado a funci贸n.

Les dejo el c贸digo 馃槂

  • Unions:
#include <iostream>
#include <string>

using namespace std;

int main() {
  union number_letter {
    int number;
    char letter;
  };

  number_letter x = {'a'};
  number_letter y = {9};

  cout << x.letter << endl;
  cout << y.number << endl;
}
  • Enumerations:
#include <iostream>
#include <string>

using namespace std;

int main() {
  enum days_of_week { monday = 'M', tuesday = 'T', friday = 'F' };
  days_of_week day = monday;
  cout << day << endl;
}

Quer铆a saber cu谩l era el uso de los 鈥渦nions鈥 y encontr茅 esto en StakOverFlow:

The purpose of union is to save memory by using the same memory region for storing different objects at different times. That鈥檚 it.

Es decir, seg煤n esto, sirven para poder guardar varios datos de varios tipos que no se usar谩n a la vez y as铆 no tener la necesidad de usar memoria extra para hacerlo. Sirve para ahorrar memoria

Mi codigo 馃く:

#include <iostream>
#include <string>

using namespace std;

int main() {

    // Union

    union number_letter {
        int number;
        char letter;
    };

    number_letter x = { 'A' };

    cout << "X as a number: " << x.number << endl;
    cout << "X as a letter: " << x.letter << endl;

    // Enums

    enum weekdays {
        monday = 'M',
        tuesday = 'T',
        wednesday = 'W',
        thursday = 'H',
        friday = 'F',
        saturday = 'S',
        sunday = 'D'
    };

    weekdays day = monday;
    cout << (char) day;

Aqui hago una comprobacion de como el valor de un union se reasigna si modificas una de las variables internas. Tambien hago la comprobacion de que es la misma direccion de memoria independientemente del tipo de variable que contenga que decidas consultar.
.

los punteros sirven para referenciar valores todo el tiempo ;

aqui aunque hayamos cambiando el valor de sonata mercedes tendra el mismo valor que sonata.

cosa que si no fuera puntero , se hiviera quedado con el primer valor


class vehiculo
{
public:
	
	int numero;
};


int main()
{

	vehiculo sonata = vehiculo();
	sonata.numero = 10;
	vehiculo *Mercedes = &PadreSonata;

	PadreSonata.numero = 15;

	cout << sonata.numero << endl;
	cout << mercedes->numero;
}