zoukankan      html  css  js  c++  java
  • 多态(3)—— 纯虚函数和抽象类

    1、基本概念

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

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

    纯虚函数的语法:

    virtual 类型 函数名 (参数表)=0

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

    1、含有纯虚函数的类,称为抽象基类,不可实例化。即不能创建对象,存在的意义就是被继承,提供族类的公共接口。
    2、纯虚函数只有声明,没有实现,被“初始化”为0。
    3、如果一个类中声明了纯虚函数,而在派生类中没有对该函数定义,则该函数在派生类中仍然为纯虚函数,派生类仍然为纯虚函数。

    2、抽象类小案例

    #include <iostream>
    using namespace std;
    
    class BigBrother//抽象类
    {
    public:
        virtual void fightpeople() = 0;
    };
    
    class dongfang:public BigBrother
    {
    public:
        virtual void fightpeople()
        {
            cout << "使用了葵花宝典" << endl;
        }
    };
    
    class wuyazi :public BigBrother
    {
    public:
        virtual void fightpeople()
        {
            cout << "使用了北冥神功" << endl;
        }
    };
    
    int main(void)
    {
        BigBrother *bigbrother = new dongfang;
        bigbrother->fightpeople();//使用了葵花宝典
    
        BigBrother *bigbrother = new wuyazi;
        bigbrother->fightpeople();//使用了北冥神功
    
        return 0;
    }

    3、抽象类在多继承中的应用

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

  • 相关阅读:
    actionscript3.0 的一些小技巧
    Flash 安全沙箱的意义
    明明连上了网,但是打不开网页
    关于电脑上可用内存太小的问题
    AS3 Starling 学习杂谈 (一) Quad类
    更新flash builder4,6 的AIR版本
    软件工程实践2017第二次作业
    软件工程实践2017第一次作业
    微信小程序开发指南合集 各类组件用法技巧
    微信小程序视频教程合集 附带源码、PPT下载
  • 原文地址:https://www.cnblogs.com/yuehouse/p/9857840.html
Copyright © 2011-2022 走看看