多态:
多态按字面的意思就是多种形态,相同的方法调用,但是有不同的实现方式。多态性可以简单地概括为“一个接口,多种方法”。C++有两种多态形式:
- 静态多态
- 动态多态
静态多态(静态绑定):也称为编译期间的多态,编译器在编译期间完成的,编译器根据函数实参的类型(可能会进行隐式类型转换),可推断出要调用那个函数,如果有对应的函数就调用该函数,否则出现编译错误。
静态多态有两种实现方式:
函数重载:包括普通函数的重载和成员函数的重载
函数模板的使用
动态多态(动态绑定):即运行时的多态,在程序执行期间(非编译期)判断所引用对象的实际类型,根据其实际类型调用相应的方法。
1.通过基类类型的引用或者指针调用虚函数
2.必须是虚函数(派生类一定要重写基类中的虚函数)
首先搞清楚这个对象的类型:
- 静态类型:对象声明时的类型,编译时确定
- 动态类型:目前所指对象的类型,运行时确定

重载:
重载定义:在同一作用域中,同名函数的形式参数(参数个数、类型或者顺序)不同时,构成函数重载。
重载函数与返回值,参数名无关
- 类的静态成员函数与普通成员函数可以形成重载
- 函数重载发生在同一作用域,如类成员函数之间的重载、全局函数之间的重载
- 函数返回值类型与构成重载无任何关系

本文详细介绍了C++中的多态性,包括静态多态和动态多态,以及其实现方式如函数重载和虚函数。此外,还探讨了函数重载的工作原理和构造函数、析构函数的重载特性。同时,文章解释了隐藏(重定义)和重写(覆盖)的概念,以及两者在继承中的不同作用。最后,讨论了重写的目的和意义,通过类比说明了为何在面向对象编程中需要使用重写而非简单地隐藏父类函数。
、重写(覆盖)&spm=1001.2101.3001.5002&articleId=120441629&d=1&t=3&u=a941a9ccae384c4d81c6a22f1cec98e8)
397

被折叠的 条评论
为什么被折叠?



