07-0 多态的基本概念
多态是cpp面向对象的三大特性之一
- 复习:cpp面向对象的三大特性:
- 封装
- 继承
- 多态
多态分为两类:
- 静态多态:函数重载 和 运算符重载 就属于静态多态,复用函数名。
- 动态多态:派生类和虚函数实现运行时多态。
-
复习:
-
函数重载:
-
函数重载的简单概念是:在某种特定的条件下,多个函数可以共用同一个函数名称。调用函数的时候会通过形参来判断应该执行哪一个函数。
-
函数重载需要满足的条件:
- 函数在同一个作用域下
- 函数的名称相同
- 函数形参的类型不同,或者个数不同,或者顺序不同。
注意:函数的返回值的数据类型不同不可以作为函数重载的发生条件哦。
-
-
运算符重载:
- 运算符重载的简单概念是:对已有的运算符进行重新定义,赋予它另外的一种功能,用来适应不同的数据类型(比如说自定义的结构体
struct
或者类class
)。 - 运算符重载的注意事项:
- 内置的数据类型的表达式运算不可以修改,即不可以修改普通认知中的运算规则。
- 运算符的重载的本质是函数调用。
- 运算符重载的简单概念是:对已有的运算符进行重新定义,赋予它另外的一种功能,用来适应不同的数据类型(比如说自定义的结构体
-
派生类:
派生类是cpp面向对象中继承中的知识点。派生类就是子类。
-
静态多态和动态多态的区别:
- 静态多态:静态多态的函数地址在编译阶段确定。
- 动态多态:动态多态的函数地址程序运行时确定。(动态多态的意义。)
在cpp中,如果特别指出是多态,一般指的是动态多态。
-
总结:
-
多态的分类:
-
静态多态:例如函数重载和运算符重载。
-
动态多态:派生类和虚函数实现运行时多态。
-
-
静态多态和动态多态的区别:
- 函数地址的确定时间不同。
-
在cpp中,如果特别指出是多态,一般指的是动态多态。
-
:-)