码迷,mamicode.com
首页 > 其他好文 > 详细

多态(3)—— 纯虚函数和抽象类

时间:2018-10-26 19:35:59      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:16px   函数   div   就是   stream   类型   iostream   自己的   The   

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++中可以使用纯虚函数实现接口;
  接口类中只有函数原型定义,没有任何数据的定义。

 

多态(3)—— 纯虚函数和抽象类

标签:16px   函数   div   就是   stream   类型   iostream   自己的   The   

原文地址:https://www.cnblogs.com/yuehouse/p/9857840.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!