zoukankan      html  css  js  c++  java
  • C++中的纯虚函数和抽象类

    纯虚函数

    纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本

    纯虚函数为个派生类提供一个公共界面(接口的封装和设计、软件的模块功能划分

    纯虚函数声明语法:

    virtual 类型 函数名(参数表) = 0;
    #include <iostream>
    using namespace std;
    
    class Figure
    {
    public:
        virtual void getArea() = 0;
    };
    
    class Circle: public Figure
    {
    private:
        double r;
    public:
        Circle(int r1):r(r1){}
        
        virtual void getArea()
        {
            cout<<"圆形面积:"<<3.14 * r * r<<endl;
        }
    };
    
    class Square: public Figure
    {
    private:
        double edge;
    public:
        Square(int e):edge(e){}
    
        virtual void getArea()
        {
            cout<<"正方形面积:"<<edge * edge<<endl;
        }
    };
    
    void getArea(Figure *base)
    {
        base->getArea();
    }
    
    int main()
    {
        Circle c(10);
        Square s(10);
    
        getArea(&c);
        getArea(&s);
    
        return 0;
    }
    View Code

    注意:

    1,含有纯虚函数的类,称为抽象基类,不可实例化。 即不能创建对象,存在的意义就是被继承,提供族类的公共接口。

    2,纯虚函数只有声明,没有实现,被“初始化”为 0

    3,如果一个类中声明了纯虚函数,而在派生类中没有对该函数定义,则该虚函数在派生类中仍然为纯虚函数,派生类仍然为纯虚基类。

    抽象类

    一个具有纯虚函数的基类称为抽象类

    绝大多数面向对象语言都不支持多继承,绝大多数面向对象语言都支持接
    口的概念
    C++中没有接口的概念,C++中可以使用纯虚函数实现接口
    接口类中只有函数原型定义,没有任何数据的定义.

  • 相关阅读:
    IBM小练习
    面向对象
    面向对象_人狗大战
    面向对象组合小练习
    面向对象小作业
    作业大礼包_员工信息表
    异常报错处理
    开发规范

    U-boot工作流程分析
  • 原文地址:https://www.cnblogs.com/xumaomao/p/12932469.html
Copyright © 2011-2022 走看看