Red de conocimientos sobre prescripción popular - Remedios caseros - ¿Cuál es la diferencia entre constantes y estáticas en C++?

¿Cuál es la diferencia entre constantes y estáticas en C++?

En el dominio global, ya sea constante o estático significa que es único en la memoria.

La diferencia es que const es verdaderamente único, no solo tiene una dirección única, sino también un valor único;

static solo tiene una dirección única y su valor se puede cambiar.

En un dominio local, como una clase, const pierde la unicidad de la dirección y conserva la unicidad del valor, porque una clase tiene muchos objetos y las direcciones de cada objeto deben ser diferentes.

Lo más interesante es estático, que se convierte en una dirección común para todos los objetos. Si todavía te gusta usar const static en este momento, es mejor usar una constante global

. ¿Acerca de las constantes estáticas (const estática)?

Este concepto no debería existir.

Porque esto no es tan bueno como declarar una enumeración sin nombre o un espacio de nombres sin nombre.

Constante significa: "¡No se puede modificar! ¡O se recomienda encarecidamente no modificarlo!", const solo muestra que la variable (o función) no se puede modificar (o no modifica otras).

Estático significa: "Es una variable en el área de datos estáticos", estático afecta el alcance y el área de almacenamiento de la variable.

De hecho, el estándar C++ no admite el uso de la palabra clave static en espacios de nombres y ámbitos globales (el estándar usa "obsoleto" para indicar que esta práctica es actualmente legal, pero es probable que se considere ya que es ilegal). Por ejemplo, el siguiente código:

static int nCount;

int fun1();

int main()

{< /p >

}

int fun1()

{

}

El estándar C++ significa que los programadores deben hacer esto:

namespace

{

int nCount;

}

int fun1();

int main()

{

}

int fun1()

{

}