Exemple
Dans cet exemple, deux variables sont déclarées avec le même nom. Cela peut être source d'erreur et prêter à confusion pour les développeurs.

class ClassA {
public:
int someFunction() {
struct Hat {
int sameName;
};

Hat myHat;
myHat.sameName = 5;

int sameName = 5;

return sameName;
}
};

Solution
Donnez plutôt un nom différent à la variable pour que l'on sache clairement quelle est la variable qui est manipulée. En plus, il est conseillé de donner à la variable un nom parlant.

class ClassA {
public:
int someFunction() {
struct Hat {
int sameName;
};

Hat myHat;
myHat.sameName = 5;

int banana = 5;

return banana;
}
};