首页 > 后端开发 > C++ > 我们可以通过继承来扩展 C 标准库吗?

我们可以通过继承来扩展 C 标准库吗?

Mary-Kate Olsen
发布: 2024-11-05 05:07:02
原创
220 人浏览过

Can We Extend the C   Standard Library Through Inheritance?

通过继承扩展 C 标准库

普遍的看法是 C 标准库不应该通过继承来扩展。然而, std::Exception 的存在挑战了这个概念。因此,出现了以下问题:

标准库类可以通过继承来扩展吗?

除了std::Exception之外,还不清楚还有哪些标准库类是为了继承。确定合适候选者的实用方法如下:

  • 检查虚拟方法:具有虚拟方法的类是基类的潜在候选者。
  • 避免使用友元声明的类:封装问题可能会导致继承出现问题。
  • 考虑模板:通过专门化进行自定义可能比模板的继承更好。
  • 警惕基于策略的机制:这些机制表明继承是不可取的。

从标准库类继承的含义

当从像 std::exception 这样的标准库类继承时,子类是否必须遵守原始接口是有争议的。然而,“里氏替换原则”(LSP)表明,就客户端而言,子类的行为应该与基类的行为一致。

因此,最好的做法是确保子类的 What() 成员函数返回非空指针,即使标准没有明确要求 std::exception 的子类这样做。

以上是我们可以通过继承来扩展 C 标准库吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板