当派生类成员变量名称隐藏其父类之一时,是否有办法生成警告,例如
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' */
};
-Wshadow
上面的代码在使用 g++编译时不会产生警告。