Sombreado de variables en C
Al definir variables dentro de clases, C permite que variables con el mismo nombre se utilicen en diferentes ámbitos. Este fenómeno, conocido como "variables de seguimiento", puede generar confusión y comportamiento inesperado.
En la definición de clase dada:
class Measure {
int N;
double measure_set[];
char nomefile[];
double T;
};
la variable miembro T será sombreada por la variable T declarada en el método get:
void Measure::get() {
int M=0;
int nmax=50;
// ...
cout > T;
cout Como resultado, cualquier modificación realizada en T dentro del método get en realidad afectará a la variable sombreada Measure_set[0]. Para rectificar este problema, considere usar nombres de variables distintos o utilizar prefijos de miembros de clase para evitar colisiones de nombres:
Nombres de variables distintos:
class Measure {
int N;
double measure_set[];
char nomefile[];
double temperature; // Rename variable
};
void Measure::get() {
// ...
cout > temperature;
cout Prefijos de miembros de clase:
class Measure {
int m_N;
double m_measureSet[];
std::string m_nomefile;
double m_T;
};
void Measure::get() {
// ...
cout > m_T;
cout Al anteponer a las variables miembro el nombre de la clase o un identificador específico, puede evitar colisiones de nombres y garantizar que las variables ocultas no interfieran con los miembros de la clase.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3