"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment éviter d'observer les variables dans les méthodes de classe C++ ?

Comment éviter d'observer les variables dans les méthodes de classe C++ ?

Publié le 2024-12-22
Parcourir:173

How to Avoid Shadowing Variables in C   Class Methods?

Ombrage des variables en C

Lors de la définition de variables au sein des classes, C permet d'utiliser des variables portant le même nom dans différentes portées. Ce phénomène, connu sous le nom de « variables d'observation », peut entraîner une confusion et un comportement inattendu.

Dans la définition de classe donnée :

class Measure {
int N;
double measure_set[];
char nomefile[];
double T;
};

la variable membre T sera masquée par la variable T déclarée dans la méthode get :

void Measure::get() {
int M=0;
int nmax=50;

// ...

cout > T;
cout 

Par conséquent, toute modification apportée à T dans la méthode get affectera en fait la variable masquée Measure_set[0]. Pour résoudre ce problème, envisagez d'utiliser des noms de variables distincts ou des préfixes de membres de classe pour éviter les collisions de noms :

Noms de variables distincts :

class Measure {
int N;
double measure_set[];
char nomefile[];
double temperature; // Rename variable
};

void Measure::get() {
// ...

cout > temperature;
cout 

Préfixes des membres de classe :

class Measure {
int m_N;
double m_measureSet[];
std::string m_nomefile;
double m_T;
};

void Measure::get() {
// ...

cout > m_T;
cout 

En préfixant les variables membres avec le nom de la classe ou un identifiant spécifique, vous pouvez éviter les collisions de noms et garantir que les variables masquées n'interfèrent pas avec les membres de la classe.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3