• 虚函数继承中,虚函数为什么一定要在派生类中定义?


    1. 什么是抽象类?

      包含有纯虚函数的类,称为抽象类。纯虚函数是一个在基类中只有声明的虚函数,在基类中无定义,派生类中一定要给出自己的定义。

    // 纯虚函数, 要有=0
    void fun(int a, const char * b) = 0;
    

      

    2. 抽象类为什么不能实例化?

      可能是规定如此。可能的原因是,抽象类都是作为基类存在的,是对多种对象的共同点进行抽象的概念,从面对对象编程的思想来说,只要声明共同的行为即可,不需要给出定义。

    举例来说,抽象类是方言,共同的特点是说话,至于是用东北话四川话,还是普通话,就不需要指定(即使想指定,地球上那么多方言也不能都指定),派生类东北话、四川话中定义

    具体的说话方式就可以了。如此一来,即简化了基类中的代码量,也方便派生类按照需求增添。

    3. 虚函数为什么一定要在派生类中定义?

      既然抽象类不能实例化,那么派生类继承的虚函数,仍然是纯虚函数,派生类也就成了抽象类,如此一来,当然不能实例化了。不能实例化,就不能创建对象,所以一定要定义。

    当然,如果派生类依然是一个抽象,不定义当然可以,比如基类是生物,派生类是植物。

  • 相关阅读:
    zabbix 微信告警
    mongodb 的数据备份与还原
    Templates
    Rsyslog 基本结构
    matplotlib绘图学习
    pyhon 简介
    Pygame (Python编程从入门到实践)
    AttributeError: 'pygame.Surface' object has no attribute 'rect'
    PYTHON CLIENT API
    SALT.STATES.CMD模块
  • 原文地址:https://www.cnblogs.com/blackandwhite/p/12496201.html
Copyright © 2020-2023  润新知