La palabra clave const en C++

Migel Hewage Nimesha 12 octubre 2023
  1. Declarando Variables Const en C++
  2. Usar la const con punteros en C++
  3. Variable puntero a variable const en C++
  4. la variable de puntero const a un valor en C++
  5. la variable puntero const a la variable const en C++
  6. la función miembro const y el objeto const en C++
La palabra clave const en C++

La palabra clave const, que significa Constante en C++, se usa para hacer que un valor o valores específicos sean constantes en todo el programa.

Una vez declarada estable una variable/objeto/función, el compilador no dejará que el programador modifique el valor asignado durante el resto del programa.

Asegura que el programa se ejecute sin interrupciones durante su ejecución. Si el programador intenta cambiar el valor más tarde, el compilador mostrará un error de compilación.

La principal ventaja de la const es que permite que un valor o valores específicos sean constantes a lo largo de todo el programa. Como se mencionó anteriormente, también permitirá que el compilador realice optimizaciones específicas que de otro modo no serían posibles.

La palabra clave const se puede usar de diferentes maneras específicas en un programa para abordar diferentes necesidades de programación.

Declarando Variables Const en C++

Al hacer que una variable sea constante, la variable siempre debe inicializarse mientras se declara. Después de decir la variable, es imposible cambiar su valor en una parte diferente del código.

Para declarar una variable como constante;

const int x = 1;

Usar la const con punteros en C++

Hay tres formas de usar la palabra clave const con punteros.

  • Variable puntero al valor const.
  • La variable puntero const a un valor.
  • El puntero const a una variable const.

Variable puntero a variable const en C++

Significa que el puntero está apuntando a una variable constante, podemos usar el valor de la variable a la que apunta el puntero, pero no podemos cambiar el valor de la variable usando el puntero.

const int* y;

Es beneficioso cuando se hace inmutable una cadena o una matriz.

la variable de puntero const a un valor en C++

Aquí el puntero es una constante, pero el valor del puntero no es constante; por lo tanto, es posible cambiar su valor.

Además, aunque cambiamos el valor, no podemos cambiar la ubicación de memoria del puntero. Es esencial cuando el almacenamiento cambia su valor pero no su ubicación en la memoria.

int z = 2;
const int* y = &z;

la variable puntero const a la variable const en C++

Después de asignar los valores en esta situación, es imposible cambiar la variable del puntero o el valor de la variable al que apunta el puntero.

int i = 3 const int* const j = &i;

la función miembro const y el objeto const en C++

C++ es un lenguaje de programación orientado a objetos, y hay casos en los que un objeto creado no está destinado a ningún cambio buscado durante ninguna parte del programa.

Por lo tanto, hacer que un objeto sea constante usando la palabra clave const puede ser muy útil para situaciones como esta. Si se necesita declarar un objeto como const, debe inicializarse en el momento de la declaración.

Después de inicializar el objeto, es imposible cambiar cualquiera de las dimensiones dadas al objeto durante el resto del programa.

El compilador arrojará un error de compilación. Aquí hay un ejemplo de un objeto const.

#include <iostream>
using namespace std;

class length {
 public:
  int x;
  length(int y) { x = y; }
};

int main() {
  const length obj1(15);
  cout << "The length of object 1 is " << obj1.x << endl;
  return 0;
}

Producción :

The length of object 1 is 15

Cuando se declara una función seguida de const, se crea una función constante. Se utiliza principalmente con objetos const.

Es importante tener en cuenta que si se llama a una función miembro a través de un objeto const, el compilador arrojará un error independientemente de si la función miembro pretendía cambiar el objeto o no.

Aquí hay un ejemplo de una función miembro const.

#include <iostream>
using namespace std;

class length {
 public:
  int x;
  length(int y) { x = y; }
  int getvalue() const { return x; }
};

int main() {
  const length obj1(15);
  cout << "The length of object 1 is " << obj1.getvalue() << endl;
  return 0;
}

Producción :

The length of object 1 is 15

El punto de const es que no permite modificar cosas que no deberían modificarse.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

Artículo relacionado - C++ Const