174 字
1 分钟
多态
2024-08-31
无标签
对不同类型的数据提供相同的接口
- Ad hoc polymorphism (特殊的多态)
- subtype polymorphism (子类型多态)
- Parametric polymorphism (参数化多态)
adhoc多态
- 函数重载 比如
int foo(int a);
void foo(float b);
foo具有多个类型签名foo的实际类型是int -> int | float -> void
- 运算符重载(把运算符看成函数)
Subtype polymorphism
subtyping是类型多态其中一种形式,它指的是subtype(一种数据类型)和另一种数据类型(supertype)的一种可替换关系。这意味着在我们的程序中,supertype的所有函数调用,可以被subtype完全替换。
Parametric polymorphism
比如
template <typename T>
auto id(T v) -> T { return v; }
