Przykład
W tym przykłądzie występują dwie deklaracje zmiennych o tej samej nazwie. Jest to mylące i może wprowadzić w błąd programistów.

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

Hat myHat;
myHat.sameName = 5;

int sameName = 5;

return sameName;
}
};

Rozwiązanie
Należy raczej nadać zmiennym inne nazwy, tak aby było jasne, na której zmiennej wykonywane są operacje. Zaleca się nadawanie zmiennym takich nazw, które objaśniają ich przeznaczenie.

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

Hat myHat;
myHat.sameName = 5;

int banana = 5;

return banana;
}
};