使用“override”声明的成员函数不能重写基类成员_面试必知必会|理解C++虚函数...

76b3c0bdaa78d9dd577b89562e50623a.png
本文首发于:面试必知必会|理解C++虚函数 微信公众号:后端技术指南针 持续输出干货 欢迎关注 惊喜直达!

0.前言

在后端面试中语言特性的掌握直接决定面试成败,因此本公众号在在后续会持续输出编程语言的必知必会知识点系列。

C++语言一直在增加很多新特性来提高使用者的便利性,但是每种特性都有复杂的背后实现,充分理解实现原理和设计原因,才能更好地掌握这种新特性。

0f7cc8cbbe8ee80130a162c81e284909.png

只要出发总会达到,只有出发才会到达,焦虑没用,学就完了,今天一起来学习C++的虚函数考点吧。

通过本文你将了解的以下内容:

  1. C++多态机制
  2. 虚函数的基本使用
  3. 虚函数的底层实现
  4. 纯虚函数和抽象类
  5. 虚析构函数
  6. 虚函数的优缺点

1.C++多态机制

  • 多态机制简介

C++面向对象的三大特征:

  1. 多态(Polymorphism)
  2. 封装(Encapsulation)
  3. 继承(Inheritance)

从字面上理解多态就是多种形态,具体如何多种形态,多态和继承的关系非常密切,试想下面的场景:

  1. 派生类继承使用基类提供的方法,不需更改
  2. 同一个方法在基类和派生类的行为是不同的,具体行为取决于调用对象。

后者就是C++的多态需求场景,即同一方法的行为随调用者上下文而异,举个现实生活中类似的栗子,来加深理解:

基类Woker包括三个方法:打卡、午休、干活。
派生类包括产品经理PMer、研发工程师RDer、测试工程师Tester,派生类从基类Worker中继承了打卡、午休、干活三个方法。
打卡和午休对三个派生类来说是一样的,因此可以直接调用基类的方法即可。
但是每个派生类中干活这个方法具体的实现并不一样:产品经理提需求、研发写代码、测试找Bug。SomeWhere

f242b45bde8704638ee733a6fab69c7c.png

计算机程序的出现就是为了解决现实中的问题,从上面的例子可以看到,这种同一方法的行为随调用者而异的需求很普遍

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值