在c++中什么是精化?
在阅读c++引物时,我看到了以下声明:
就C++语言而言,这种特定的双向迭代器是内置类型,不能从类中派生出来。然而,在概念上,它确实继承了。一些STL文献使用精化一词来表示这种概念继承。因此,双向迭代器是前向迭代器概念的精化。
继承和精化有什么关系?
发布于 2019-11-23 05:37:15
精化意味着“它具有相同的属性(或特性,或需求),加上更多的属性。”
如果遵循Liskov代换原理,继承通常是细化的,因为可以使用派生实例完成所有基类操作,派生实例满足所有基本要求。
不需要使用继承来实现细化。这部分是由于C++支持静态多态性,例如模板。双向迭代器是前向迭代器的精化,即使前者不继承后者,只要程序可以在任何需要前向迭代器的地方使用双向迭代器。采用迭代器的函数通常将它们作为模板类型,所以重要的是它们实现了一组已知的方法(例如,前迭代器的增量和取消引用,以及双向迭代器的减少)。
https://stackoverflow.com/questions/59004674
复制相似问题