首页 > 后端开发 > C++ > 正文

派生类如何重写 C 中的私有纯虚函数?

Patricia Arquette
发布: 2024-11-08 06:20:02
原创
698 人浏览过

How Can Derived Classes Override Private Pure Virtual Functions in C  ?

C 中的私有纯虚函数

在 C 中,遇到类似 Engine 类中的私有纯虚函数可能会令人费解。正如问题所暗示的,派生类应该提供这些函数的实现,但是它们如何访问基类的私有成员来做到这一点?

但是,问题在于一个误解:派生类确实可以覆盖私有纯虚函数。他们可能无法直接调用它们,但可以提供自己的实现。这允许“将接口规范与实现的可定制行为规范分开”。 (Herb Sutter,“虚拟性”)

在给定的示例中,公共接口由调用非公共、非重载虚拟函数的非虚拟重载函数组成。这种模式称为“公共重载非虚函数调用受保护的非重载虚函数”,解决了派生类中“隐藏”虚函数的问题。

考虑 SetStateBool 和 SetStateInt 是纯虚函数的假设情况基类中具有非虚拟接口。派生类需要保护特定重载不被新实现隐藏。为此,他们必须使用 using 声明。

但是,通过使用私有虚函数,派生类可以重写这些函数,而不必担心隐藏基类中的其他方法。这简化了在派生类中自定义虚函数行为的过程。

以上是派生类如何重写 C 中的私有纯虚函数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!