22.- Curso C++ Básico.  El tamaño de los Objetos. De Void a sizeof.

22.- Curso C++ Básico. El tamaño de los Objetos. De Void a sizeof.

¿Cuál es el tamaño de los objetos en C++?

Introducción al tipo de datos void

  • El tipo void se refiere a un "vacío" sin tipo, pero en C++ todos los objetos deben tener un tipo asignado. Intentar definir una variable como void generará un error.
  • En funciones que no devuelven valor, se omite la declaración return, ya que incluirla causaría un error de compilación.

Usos y desaconsejos del tipo void

  • Aunque se puede usar void con funciones sin parámetros (herencia del lenguaje C), este uso está desaconsejado en C++. Se recomienda dejar paréntesis vacíos.
  • Los punteros void son otro uso avanzado, pero se abordarán más adelante en el curso.

Tamaño de los objetos en memoria

  • La memoria moderna se organiza en bytes, y cada objeto puede ocupar múltiples direcciones consecutivas. Es importante entender que no hay "bufones aislados", sino contenedores de diferentes tamaños.
  • La cantidad de bytes que ocupa un objeto depende del tipo de datos asignado. Los lenguajes modernos abstraen las direcciones de memoria a través de nombres de variables.

Importancia del tamaño del objeto

  • Conocer cuánta memoria usa un objeto es útil porque determina la cantidad de información que puede contener. Un bit puede representar dos valores (0 o 1).
  • Generalizando, un objeto con n bits puede contener 2^n valores posibles. Por ejemplo, un byte (8 bits) puede almacenar 256 valores diferentes.

Relación entre tamaño y capacidad

  • A medida que aumenta el número de bytes utilizados por un objeto, también lo hace la cantidad única de valores que puede almacenar. Esto será explorado más a fondo con tipos fundamentales como enteros.

Tamaño mínimo garantizado por C++

  • El tamaño ocupado por variables depende de la arquitectura (32 o 64 bits). C++ garantiza tamaños mínimos para tipos fundamentales aunque pueden variar según la máquina.

Uso del operador sizeof

  • Para determinar el tamaño exacto en una máquina específica, se utiliza el operador sizeof, que devuelve el tamaño en bytes para tipos o variables.
  • No se puede usar sizeof con el tipo void, ya que no tiene tamaño definido; intentar hacerlo causaría error.

Ejemplo práctico

Video description

Acceso al AsistenteCPP: https://tinyurl.com/AsistenteCPP. Videotutorial en el que vemos el tamaño de los objetos en C++, empezando con el tipo void, o sin tipo. Dado que en C++ todos los objetos deben tener asignado un tipo, vemos para que se usa. Para explicar el tamaño de los objetos, vemos como administra C++ la memoria y como el tamaño mínimo de una dirección en memoria no es un bit, sino un byte. Vemos el modo de determinar el número de valores posibles de un tipo de datos, según el número de bits que contiene. Terminamos con una tabla de tamaños mínimos de tipos de datos fundamentales y una práctica con el operador sizeof que nos permite conocer los tamaños en una computadora concreta. Código completo del curso: https://github.com/0utKast/CursoCPPGitHub/archive/refs/heads/master.zip