您的位置:首页 > 编程语言 > C语言/C++

C++中的多态分析

2019-04-06 13:43 218 查看

C++中的多态,可以理解为就是多种形态,也就是对不同的对象发送同一个消息,不同的对象会作出不同的响应;

多态分为静态和动态多态

静态多态
就是在编译阶段就可以确定程序的具体执行,比如函数的重载,模板,使用对象名点访问成员函数等,这些都可以在编译阶段就可以确定下来。其中函数重载就是通过不同的函数符号名来区分调用,模板也是在编译阶段对不同类型,作出不同的实例化,而对象名通过点访问成员函数就是通过this指针来实现。

动态多态
利用虚函数来实现运行时候的动态多态,就是在编译阶段不知道程序具体要调用的函数,只有在程序运行到的时候才能确定要开辟那个函数的栈帧。
首先说一下,什么是虚函数
虚函数就是在基类中声明该函数是虚拟的(通过在函数之前加上virtual关键字),然后在子类正式定义(自己中该函数的函数名,返回值,函数参数个数,参数类型都和基类声明的虚函数相同,此时才是重写,不然就是函数的重载)在定义一个基类对象的指针,然后是该指针指向该基类派生的子类对象,然后再通过这个指针来调用虚函数,实现动态多态

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: