• 【C++】纯虚函数和抽象类


    大家好,我是翼同学!


    每篇前言

    今天笔记的内容是:

    • 纯虚函数和抽象类

    1️⃣概述

    什么是纯虚函数?

    之前我们讲过虚函数,即在基类中被声明为virtual,且在派生类中重新定义的成员函数,其可实现成员函数的动态重载。但需要注意,虚函数里是可以有实现语句的。而什么是纯虚函数

    纯虚函数就是一种特殊的虚函数,也叫抽象函数。在基类中,没有对虚函数给出有意义的实现语句,而是将其定义为纯虚函数,即纯虚函数并没有函数体。而纯虚函数的实现工作就交给派生类去做。这就是纯虚函数的作用。就类似在JAVA中,用关键字abstract去修饰函数。表示其为抽象函数。


    什么是抽象类?

    有了纯虚函数的类就属于抽象类

    注意:抽象类无法实例化对象。

    即声明了纯虚函数的类是一个抽象类。并且无法创建抽象类的实例。如类myClass是抽象类,那么语句:myClass a;是无法实现的。所以我们只能创建它的派生类的实例。但是派生类必须重写基类的纯虚函数,否则子类也是抽象类。


    纯虚函数的语法

    virtual 返回值类型 函数名(形参列表) = 0;
    
    • 1

    2️⃣小结

    1. 纯虚函数的用处在于规范派生类的行为
    2. 带有纯虚函数的类我们称为抽象类。
    3. 抽象类是一种特殊的类,只能作为一个父类来使用。
    4. 抽象类中纯虚函数的定义由子类来实现。
    5. 如果子类中没有重定义纯虚函数,而只是继承父类的纯虚函数,那么这个子类仍然还是一个抽象类。
    6. 如果子类中给出了父类纯虚函数的实现,那么该子类就不再是抽象类了,而是一个可以创建对象的具体类。

    3️⃣写在最后

    本章内容参考书:

    《C++程序设计教程》---- 钱能 著


    好了,本篇笔记就到写这,欢迎大家到评论区一起讨论!

  • 相关阅读:
    项目(补充2):智慧教室
    Unity事件函数的执行顺序
    01 初识HTML5
    为什么需要单元测试?
    Kafka 控制器(controller)
    docker 安装 redis
    Savepoints
    【时序】时间序列数据预处理
    qt的qtableview锁定第一列(或者其他列)
    关于第一次接入Kotlin
  • 原文地址:https://blog.csdn.net/m0_62999278/article/details/124797467