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编译时,上述代码不会生成警告.
解决方法 实际上我看到代码如下,显示了阴影警告的必要性.int val = 0;if (flag == aval) int val = firstval;else if (flag == bval) int val = secondval;else if...switch (val){// put cases here}
我还看到阴影警告,其中内部变量意图是本地的,对外部变量没有影响,并且不应该引用阴影变量.其实,更改名称更容易,以防止警告.
总结以上是内存溢出为你收集整理的当类成员影响其父类的成员时,C会生成警告?全部内容,希望文章能够帮你解决当类成员影响其父类的成员时,C会生成警告?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)