[英]Methods of achieving polymorphism in C++ and categorizing them
在阅读了C ++ 中的多态性和什么是多态性之后,它的用途是什么,如何使用它? 我注意到许多答案在它们列出的实现多态性的方法上有所不同,我想为自己列出一个更全面的列表。
实现多态的机制
#define
,它取自第一个链接中的答案) 我想念什么或遗忘什么? 这个清单足够全面吗?
阅读https://catonmat.net/cpp-polymorphism之后,我也对这些机制进行了分类。
临时(也称为运行时多态):
参数化(也称为编译时多态):
子类型化(也称为重载)
胁迫(也称为铸造)
这些分类正确吗?
供参考:(摘自https://en.wikipedia.org/wiki/Polymorphism_(computer_science) )
最常见的主要多态性类别是:
临时多态性 :为任意一组单独指定的类型定义一个公共接口。
参数多态性 :一种或多种类型不是通过名称指定,而是通过可以表示任何类型的抽象符号指定的。
亚型 (也称为亚型多态性或包含多态性):当一个名称表示通过一些常见的超类相关的许多不同的类的实例。
没有。
这些都没有真正涵盖什么std函数,各种函数视图,变体或什么std做什么。
可以使用其中的一些功能来实现Std函数和类似功能,但是将其中的任何功能称为标准误导。 在接口方面,没有公开的继承。 而且operator()不是模板,而是多态的。
如果您想对此找到好的答案,则可能不得不研究类别或类型理论。 高于我的薪水等级。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.