No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

14 Días
15 Hrs
59 Min
30 Seg

Uniones y enumeraciones

6/16
Recursos

Aportes 7

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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 “Sacar” 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 “unions” 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’s 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

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.
.

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;

El poder de los punteros se logra entendiendo en que momento se ejecutan y como hacen uso de la memoria. Entendiendo que usar punteros es una tecnica para usar memoria en tiempo de ejecucion, todo usa memoria pero no todo te puede ser util en ejecucion, imagina que tienes una cosa como un programa con 100 funciones, que pasaria si quieres reducir el tamano en memoria, tal vez usar un arrelglo de punteros y que cada puntero apunte a una funcion. De repente tienes todas las funciones en memoria solo cuando las necesitas. Que pasa si ademas quieres usar mas de un core de tu procesador, podrias usar esos mismos punteros para usar diferentes cores y mantener control en el uso de memoria en ejecucion

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;
}