Exemplo
Neste exemplo, há duas declarações de variáveis com o mesmo nome. Isso pode confundir os desenvolvedores.

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

Hat myHat;
myHat.sameName = 5;

int sameName = 5;

return sameName;
}
};

Solução
Em vez disso, forneça um nome diferente para a variável para que seja evidente qual variável está sendo manipulada. É recomendado que a variável tenha um nome significativo.

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

Hat myHat;
myHat.sameName = 5;

int banana = 5;

return banana;
}
};