cpp-que-son-constantes

Qué son y cómo usar las constantes en C++

Una constante en C++ es un identificador que utilizamos para representar un valor no puede ser modificado una vez establecido.

Las constantes se utilizan para evitar la repetición de valores literales en el código y mejorar la claridad y mantenimiento del mismo.

Además, el uso de constantes facilita la actualización y el mantenimiento del código (ya que si necesitas cambiar el valor de una constante, solo necesitas hacerlo en un lugar).

Sintaxis de las constantes

La sintaxis básica para definir una constante en C++ es la siguiente:

const tipo nombre = valor;
  • tipo: Especifica el tipo de datos de la constante.
  • nombre: Es el nombre único que se le da a la constante.
  • valor: Es el valor constante que se asigna a la constante.

Por ejemplo, veamos cómo podemos definir una constante con el valor de PI.

const double PI = 3.14159;

std::cout << PI << std::endl; // Imprime: 3.14159

PI = 3.5; // ❌ Esto dará un error, no puedes reasignar una constante

Uso de constantes

Acceso a constantes

Las constantes se acceden directamente utilizando su nombre:

std::cout << PI << std::endl;

Utilización en expresiones

Las constantes se pueden utilizar en expresiones en lugar de valores literales para mejorar la legibilidad:

double area = PI * radio * radio;

Convención de nombres

No es obligatorio, pero es relativamente común utilizar nombres de constantes en mayúsculas para distinguirlas de otras variables.

const double PI = 3.14159;

Constantes en clases

Las constantes también pueden ser definidas dentro de clases. Cuando se definen de esta manera, a menudo se les antepone el nombre de la clase para acceder a ellas.

class Matematicas {
public:
    static const double PI;
};

// Definición de la constante fuera de la clase
const double Matematicas::PI = 3.14159;

int main() {
    std::cout << Matematicas::PI << std::endl; // Imprime: 3.14159
    return 0;
}

Variables constexpr

Las variables constexpr son similares a las constantes, pero su valor debe ser conocido en tiempo de compilación. Estas son especialmente útiles para definir valores que se usarán en expresiones constantes.

constexpr double PI = 3.14159;

double calcularArea(double radio) {
    return PI * radio * radio;
}

Variables const en Clases

Las variables const también pueden ser miembros de una clase, y deben ser inicializadas en el constructor de la clase si no se inicializan en la declaración.

class Ejemplo {
public:
    const int NUMERO;

    Ejemplo(int valor) : NUMERO(valor) {}
};

int main() {
    Ejemplo ejemplo(42);
    std::cout << ejemplo.NUMERO << std::endl; // Imprime: 42
    return 0;
}

Ejemplos prácticos

Definición de constantes matemáticas

class ConstantesMatematicas {
public:
    static const double PI;
    static const double EULER;
};

const double ConstantesMatematicas::PI = 3.14159;
const double ConstantesMatematicas::EULER = 2.71828;

int main() {
    std::cout << "Pi: " << ConstantesMatematicas::PI << std::endl;
    std::cout << "Euler: " << ConstantesMatematicas::EULER << std::endl;
    return 0;
}

Definición de constantes de configuración

class Configuracion {
public:
    static const int LIMITE_INTENTOS_LOGIN;
    static const char* FORMATO_FECHA;
};

const int Configuracion::LIMITE_INTENTOS_LOGIN = 3;
const char* Configuracion::FORMATO_FECHA = "dd/MM/yyyy";

int main() {
    std::cout << "Límite de intentos de login: " << Configuracion::LIMITE_INTENTOS_LOGIN << std::endl;
    std::cout << "Formato de fecha: " << Configuracion::FORMATO_FECHA << std::endl;
    return 0;
}