8月27学习小结

多态分为静态多态和动态多态

静态多态(静态绑定、静态联编、早绑定):在编译期间,就可以确定函数的行为,即:具体调用哪个函数

具体体现:函数重载和模板

函数重载:在编译期间,编译器会对函数实参类型进行推演,然后根据推演的结果选择合适的函数进行调用,如果有完全匹配的,直接调用;否则进行隐式类型转化,如果可以转化则调用,否则报错
模板:在编译期间,编译器会对函数实参类型进行推演,然后根据推演的结果再给模板的参数设定为具体的类型,然后再进行实现

动态多态(动态绑定、动态联编、晚绑定):在程序运行时,根据基类指针或者引用指向不同类的对象,调用对应的虚函数(在程序运行时,确定函数具体的行为)

必须通过基类的指针或者引用调用虚函数

被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写

虚函数重写:派生类中有一个跟基类完全相同的虚函数(即派生类虚函数与基类虚函数的返回值类型、函数名、参数列表完全相同)。

重载:

两个函数在同一个作用域

函数名/参数相同

重写:

两个函数分别在基类和派生类的作用域

函数名/参数/返回值都必须相同(协变例外)

两个函数必须是虚函数

重定义:

两个函数分别在基类和派生类的作用域

函数名相同

两个基类和派生类的同名函数不构成重写就是重定义

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值