首页 >后端开发 >C++ >如何在 C 中访问模板化父类的继承变量?

如何在 C 中访问模板化父类的继承变量?

DDD
DDD原创
2024-12-20 10:34:16823浏览

How Can I Access Inherited Variables from Templated Parent Classes in C  ?

从模板化父类访问继承变量

针对模板化父类中变量可访问性的询问,有必要澄清一下:现代GNU C编译器,从3.4.6版本开始,严格遵守C标准。它规定模板中的非限定名称始终是非依赖的。因此,由于依赖基类专门化的未知性质,在模板定义时解析这些名称变得不可行,例如在提供的代码片段中:

此行为源于在模板定义期间识别不合格名称的要求。模板定义,由于未来潜在的专业化,这对于依赖基类是不可能的。因此,尝试在“Bar”的“Perna”方法中访问未限定的受保护变量“a”将导致错误。

要规避此限制,需要使用限定名称“Foo” ;::a' 显式引用继承的变量。或者,可以使用“using”声明来引入非限定名称:

此外,在基类中声明的非限定函数名称也受此限制。要访问此类函数,必须使用限定名称或提供“using”声明。

以上是如何在 C 中访问模板化父类的继承变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn