当前位置:  开发笔记 > 编程语言 > 正文

导入父类的所有变量

如何解决《导入父类的所有变量》经验,为你挑选了1个好方法。

您可能已经注意到gcc的更高版本对标准更严格(请参阅此问题)

应使用全名调用模板类的所有继承成员,即. ParentClass::member而不仅仅是member

但是我仍然有许多不尊重这一点的旧代码.using ParentClass::member为每个类中的每个使用成员添加是非常痛苦的.有办法做点什么using ParentClass::*吗?我希望这比在g ++中停用此检查更好,但如果现在有办法,我该如何停用它?

编辑:

根据C++ FAQ(谢谢......)这些是正确解决继承成员变量名称的唯一方法:

    将呼叫从更改f()this->f().由于这总是隐式依赖于模板,因此this->f是依赖的,因此查询将被推迟,直到模板实际被实例化为止,此时将考虑所有基类.

    插入using B::f; 就在打电话之前f().

    将呼叫从f()更改为B::f().

所以现在寻找正确的开关来停用全名解析......



1> sth..:

不是你问题的答案,但你也可以写 this->member而不是ParentClass::member.这通常更容易编写,并使编译器member在正确的位置查找.

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有