Saltar al contenido
Topos Uranos

Resumen

Un tipo no solo fija cuántos bytes ocupa un dato, sino cómo se leen sus bits: el mismo byte es la letra «A» para un char y el número 65 para un int. Esta clase completa los tipos básicos con los caracteres y los booleanos, y estudia el paso de un tipo a otro: las conversiones implícitas, que el compilador hace sin pedirlas y que pueden perder información; la conversión explícita con static_cast, y la inicialización con llaves, que rechaza las pérdidas. Termina con las constantes, const y constexpr, que convierten una intención («este valor no cambia») en una garantía que el compilador verifica, y con los literales y auto, que deciden el tipo de un valor escrito en la fuente.

Objetivos de aprendizaje

  1. Usar el código numérico de un carácter para calcular con él, por ejemplo para obtener el valor de una cifra leída como carácter.
  2. Predecir el resultado de una conversión implícita entre enteros, reales y booleanos, y escribir la conversión explícita con static_cast.
  3. Explicar por qué la inicialización con llaves rechaza las conversiones que pierden información, y qué hace GCC en cada caso.
  4. Declarar con const o constexpr todo valor que no debe cambiar, y distinguir una palabra de la otra.
  5. Deducir el tipo de un literal (5, 5u, 5.0, 5.0f, '5', "5") y el que auto le asigna.

El tipo como interpretación

La clase Variables y memoria presentó la variable como una casilla con nombre, tipo y valor, y las clases Los enteros y su representación y Los números de coma flotante mostraron que, dentro de la casilla, no hay números sino bits, y que el tipo dice cómo leerlos. Esta clase lleva esa idea a su consecuencia: si el tipo es la regla de lectura, entonces los mismos bits significan cosas distintas según el tipo con que se lean, y pasar un valor de un tipo a otro, que en C++ se llama conversión, es cambiar de regla. Algunas conversiones conservan el valor (el entero 7 se convierte en el real 7.0 sin perder nada); otras lo alteran (el real 2.7 se convierte en el entero 2). De ello se sigue la pregunta que recorre la clase: en cada conversión, ¿se conserva el valor, y quién lo comprueba?