zoukankan      html  css  js  c++  java
  • 4.0 C++远征:纯虚函数与抽象类

    3-1纯虚函数抽象类

    一、纯虚函数

    1.纯虚函数的定义

    纯虚函数,没有函数体,同时定义时在函数名后要加上“=0”。

    class Shape {
      public:
      	virtual double calcArea() {	// 虚函数
          return 0.00;
      	}
      	virtual double calcPerimeter() = 0;	// 纯虚函数  	
    }
    

    2.纯虚函数的实现原理

    虚函数表指针指向一份虚函数表。

    如果定义的是虚函数,在虚函数表中,此函数指针的值存的是虚函数的首地址。

    如果定义的是纯虚函数,在虚函数表中,此函数指针的值存的是0。

    二、抽象类

    1.抽象类

    含有纯虚函数的类叫做抽象类。

    2.抽象类的用法

    ​ (1)抽象类无法实例化对象。(无论在堆中还是栈中。)

    ​ (2)因为纯虚函数无法被调用。

    ​ (3)当类的用途很明确时,才在派生类中具体去实现基类中定义的纯虚函数。这样在派生类中才能使用。

    ​ (4)若是派生类并没有对基类中的纯虚函数进行实现,则该派生类仍然是抽象基类。

    ​ (5)只有将抽象类中所有纯虚函数都做了实现,派生类才可以去实例化对象。

    ​ (6)抽象基类是本类族的公共接口。例如可通过抽象基类的指针访问到任何子类的虚函数,并对这些函数下达同一命令,从而实现多态性。

  • 相关阅读:
    sqoop
    HBase API操作
    Hbase 01-安装| shell操作
    Azkaban
    Kafka-API
    Oozie
    Kafka Manager| KafkaMonitor
    kafka工作流程| 命令行操作
    CDH| HUE的自动化安装部署
    Impala
  • 原文地址:https://www.cnblogs.com/xiaoqingyang/p/6077544.html
Copyright © 2011-2022 走看看