Hay un tipo de variable en C++ que podemos usar si queremos forzar que su valor no cambie a lo largo de la ejecución del programa, las constantes.
Hay dos formas de declarar constantes en C++:
- Mediante la palabra clave const.
- Utilizando el preprocesador mediante #define
Definición de constantes mediante const
El formato de esta declaración es el siguiente:
const type variable = value;
Por ejemplo:
const int pokemonCount = 898;
Tratar de cambiar este tipo de variables nos mostrará un error. Compruébalo por tu cuenta:
#include <iostream> using namespace std; int main() { const int pokemonCount = 898; cout<<"Número de pokemon = "<<pokemonCount<<"\n"; pokemonCount = 1000; cout<<"Número de pokemon = "<<pokemonCount<<"\n"; return 0; }
Definición de constantes en la cabecera
El formato de la declaración es el siguiente:
#define identifier value
Por ejemplo:
#include <iostream> using namespace std; #define POKEMON_COUNT 898 int main() { cout<<"Número de pokemon = "<<POKEMON_COUNT<<"\n"; POKEMON_COUNT = 1000; cout<<"Número de pokemon = "<<POKEMON_COUNT<<"\n"; return 0; }
De nuevo nos encontraremos con un error al tratar de ejecutar este programa.
Constantes enumeradas
Hay un tipo de constante especialmente útil, las constantes enumeradas o enumerated constants. Se usan para declarar un tipo de variable y asignarle así un número finito de valores. Fíjate en este ejemplo:
enum pokemonTipo { PLANTA, FUEGO, AGUA, LUCHA, BICHO, ELECTRICO };
Los valores son automáticamente traducidos a enteros de tal forma que:
PLANTA = 0 FUEGO = 1 ...
Fíjate en el programa de ejemplo:
#include <iostream> using namespace std; int main() { enum POKEMON_TIPO { PLANTA, FUEGO, AGUA, LUCHA, BICHO, ELECTRICO }; // definimos mejorTipo como una variable de tipo POKEMON_TIPOS POKEMON_TIPO mejorTipo; // hacemos una asignación mejorTipo = ELECTRICO; // y comprobamos como haríamos con cualquier otra variable if(mejorTipo == ELECTRICO) { cout<<"No me parece que ese sea el mejor tipo de pokemon\n"; } return 0; }