c++中的细化和继承

Posted

技术标签:

【中文标题】c++中的细化和继承【英文标题】:Refinement and inheritance in c++ 【发布时间】:2019-11-23 05:01:30 【问题描述】:

什么是 c++ 中的细化?

在阅读 c++ 入门时,我遇到了以下声明:

就 C++ 语言而言,这种特殊的双向迭代器, 作为内置类型,不能从类派生。从概念上讲, 但是,它确实继承。一些 STL 文献使用术语细化 来表示这种概念继承。因此,双向 迭代器是前向迭代器概念的改进

继承和细化有什么关系?

【问题讨论】:

【参考方案1】:

细化的意思是“它具有相同的属性(或特性或要求),还有更多。”

如果遵循Liskov Substitution Principle,继承通常是细化,因为你可以用派生实例做所有基类的事情,而派生实例满足所有基本要求。

不必使用继承来实现细化。这部分是由于 C++ 支持静态多态性,例如模板。双向迭代器是对前向迭代器的改进,即使前者不从后者继承,只要程序可以在任何需要前向迭代器的地方使用双向迭代器。采用迭代器的函数通常将它们作为模板类型,所以重要的是它们实现了一组已知的方法(例如,前向迭代器的递增和取消引用,以及双向的递减)。

【讨论】:

以上是关于c++中的细化和继承的主要内容,如果未能解决你的问题,请参考以下文章

C++中的继承

深入浅出之C++中的继承

C++中的继承

C++中的继承

C++中的继承

C++中的继承