Avertissement du compilateur (niveau 4) C4458
déclaration de 'identifier' masque le membre de classe
La déclaration d’identificateur dans l’étendue locale masque la déclaration de l’identificateur nommé identiquement au niveau de l’étendue de classe. Cet avertissement vous permet de savoir que les références à l’identificateur dans cette étendue sont résolues vers la version déclarée localement, et non la version membre de classe, qui peut ou non être votre intention. Pour résoudre ce problème, nous vous recommandons de donner des noms de variables locales qui ne sont pas en conflit avec les noms de membres de classe.
Exemple
L’exemple suivant génère l’erreur C4458, car le paramètre x
et la variable y
member_fn
locale ont les mêmes noms que les membres de données de la classe. Pour résoudre ce problème, utilisez différents noms pour les paramètres et les variables locales.
// C4458_hide.cpp
// compile with: cl /W4 /c C4458_hide.cpp
struct S {
int x;
float y;
void member_fn(long x) { // C4458
double y; // C4458
y = x;
// To fix this issue, change the parameter name x
// and local name y to something that does not
// conflict with the data member names.
}
} s;