gpt4 book ai didi

c++ - 导入父类的所有变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:41:15 24 4
gpt4 key购买 nike

您可能已经注意到 gcc 的更高版本对标准更加严格 (see this question)

模板类的所有继承成员都应该使用全名来调用,即。 ParentClass<T>::member而不仅仅是 member

但我仍然有很多不尊重这一点的旧代码。添加using ParentClass<T>::member对于每个类(class)中的每个使用过的成员来说,这都是一件很痛苦的事情。有没有办法做类似 using ParentClass<T>::* 的事情? ?。我希望这比在 g++ 中停用此检查更好,但如果现在有办法,我该如何停用它?

编辑:

根据 C++ 常见问题解答(感谢……),这些是正确解决继承的成员变量名称的唯一方法:

  1. f() 更改调用至 this->f() .由于这始终隐式依赖于模板,this->f是相关的,因此查找被推迟到模板实际实例化时,此时所有基类都会被考虑。

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

  3. 将调用从 f() 更改为 B<T>::f() .

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

最佳答案

不是你问题的真正答案,而是你can also write this->member而不是 ParentClass<T>::member .这通常更容易编写,并使编译器查找 member在正确的地方。

关于c++ - 导入父类的所有变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/672881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com