关于C++多态的一些理解

多态的分类:

(1)静态多态:重载或者模板,在编译时即实现多态;

(2)动态多态:通过继承来实现,派生类继承并重写基类的虚函数,当通过基类的指针来调用该虚函数时,调用的为派生类的函数,动态多态,在运行时实现;

多态的底层知识:

(1)当一个类包含虚函数时,相应的会有它的虚函数表(事实上是一个数组,其中存储着虚函数的地址),即虚函数表是类级别的变量,在类实例化为一个对象时,会产生一个虚函数表指针,该指针指向类的虚函数表;

(2)当子类继承父类时,会复制一份父类的虚函数表,同时由于其重写,则会将表中虚函数的地址替换为重写后的虚函数的地址(虚函数也存放在代码区),至于子类独有的虚函数,其地址也会加在虚函数表中;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值