C ++ generuje ostrzeżenie, gdy członek klasy ocienia członka klasy swojego rodzica?
Czy istnieje sposób generowania ostrzeżenia, gdy nazwa pochodnej zmiennej członka klasy zacienia się w jednej z klas rodziców, np
class Mother
{
public:
Mother() : i(0) {}
virtual ~Mother() {}
protected:
int i;
};
class Child : public Mother
{
public:
Child() : Mother(), i(0) {}
virtual ~Child() {}
protected:
int i; /* NOK Expecting warning : declaration of 'int Child::i' shadows 'int Mother::i' */
};
Powyższy kod nie generuje żadnego ostrzeżenia przy kompilacji-Wshadow
z g ++.