1.c++的多态性有哪几种,请分别介绍。
多态性是OOP中除抽象和继承外的又一核心特性,提供了接口与实现之间的有一层隔离,使得接口与实现之间根据类型信息进一步解耦,改善代码结构与可读性,使代码更具扩展性。
- 强制的多态性:通过将操作数的直转化为需要的类型,函数或运算符可以对多种不同的类型进行操作。如。“a&&b”,无论a和b是什么类型,逻辑与运算都可以对他们进行操作,得到bool类型的结果。
- 重载多态性:一个函数名字可以有多种含义,在调用时根据参数的类型决定调用函数的哪个定义。(参数的类型,数量都可以进行重载,但两个同名函数不能只有返回值不同)
以上两类多态性被称为专用多态性。
- 包含多态性:一个类型是另一个类型的子类型,基类型可用的函数对子类型也起作用。这样的函数可以有不同的实现,并根据运行时刻确定的子类型来调用。
- 参数多态性:将类型作为参数,在实例化时指定。template提供参数多态性。