C++纯虚函数介绍

纯虚函数是在基类中声明的虚函数,在基类中没有定义,但是要求任何派生类(子类)都要定义该虚函数自己的实现方法。
基类中实现纯虚函数方法在函数原型后面加一个等于0.
一旦一个类中有纯虚数,就不能生成这个类的对象。这个类就是抽象类了。抽象类不能用来生成对象,主要目的是用来统一管理子类对象。

  1. 含有纯虚函数的类是抽象类,不能用来生成该类的对象,主要用于当做基类,用来生成子类。
  2. 子类中必实现基类中的纯虚函数。
class Human {public://声明成纯虚函数virtual  void eat() = 0 ;//纯虚函数,没有函数体,只有函数声明,virtual 必须加,否则报错。
};
class Man : public Human //表示Men是Humen的子类
{public:virtual void eat2() override {};//子类中必须实现纯虚函数
};//类结尾一定要分号
 Human human;//报错,Human *p = new Human:////报错,Human* p = new Man;p->eat2();//调用Man中的eat2.

C++ 纯虚函数介绍相关推荐

  1. C++ 虚函数和纯虚函数

    C++中这两个概念不容易区分. 首先这两个函数都是为了方便使用多态这种面向对象的特性.下面将介绍两个函数的不同点. 虚函数: 一个类中定义了虚函数,通过指向派生类的基类指针,访问派生类中同名覆盖成员函 ...

  2. 虚函数和纯虚函数的区别

    首先:强调一个概念 定义一个函数为虚函数,不代表函数为不被实现的函数. 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数. 定义一个函数为纯虚函数,才代表函数没有被实现. 定义纯虚函数是为了实 ...

  3. C++ 虚函数和纯虚函数的区别

    首先:强调一个概念 定义一个函数为虚函数,不代表函数为不被实现的函数. 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数. 定义一个函数为纯虚函数,才代表函数没有被实现. 定义纯虚函数是为了实 ...

  4. 纯虚函数能为private吗?

    我们把一个仅仅含有纯虚函数的类称为接口,我们也好像已经习惯了将这个接口中的所有纯虚函数全声明为public,而且按照这样的设计,一切都工作得不错.比如COM正是这样做的,它的接口中几乎不会存在priv ...

  5. python虚函数_虚函数和纯虚函数的区别

    首先:强调一个概念 定义一个函数为虚函数,不代表函数为不被实现的函数. 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数. 定义一个函数为纯虚函数,才代表函数没有被实现. 定义纯虚函数是为了实 ...

  6. 虚函数、纯虚函数、虚继承、多继承

    来源:http://www.tnove.com/?p=57 C++的一个特征是多太,其中多态主要表现在 1.编译时多态  函数overload实现 2.运行是多态  虚函数override实现 其中虚 ...

  7. C++ day24 继承(四)抽象基类,纯虚函数,protected

    文章目录 关键字protected(带来方便同时带来危险,最好不用) 抽象基类和纯虚函数(is-a关系用公有继承实现有时候也不太合适) 用圆和椭圆的笨拙派生为例,挑拨is-a和公有继承的搭档关系 替代 ...

  8. c++ 虚函数多态、纯虚函数、虚函数表指针、虚基类表指针详解

    文章目录 静态多态.动态多态 虚函数 哪些函数类型不可以被定义成虚函数? 虚函数的访问方式 析构函数中的虚函数 虚函数表指针 vptr 多继承下的虚函数表 虚基类表指针 bptr 纯虚函数 抽象类 虚 ...

  9. 栈内存 ,堆内存区别 C++ 动态内存 == 与equal区别 复合函数奇偶性 三角函数转换公式: 虚函数和纯虚函数: C++ 中的运算符重载 数据封装,数据抽象 C++ 接口(抽象类

    目录 栈内存 ,堆内存区别 C++ 动态内存 == 与equal区别 复合函数奇偶性 三角函数转换公式: 虚函数和纯虚函数: C++ 中的运算符重载 数据封装,数据抽象 C++ 接口(抽象类): #和 ...

最新文章

  1. python登录代码思路_用python登录Dr.com思路以及代码分享
  2. Spring进行表单验证
  3. 网络推广专员如何通过社交能力扩宽外链渠道助力网络推广?
  4. 易语言操作mysql数据库
  5. 库函数设计:关于文件类打开操作函数不自动创建不存在的父目录问题
  6. 华硕无线路由打印机服务器,享受DIY的快乐 篇四:当普通打印机遇上智能路由器——网络打印机配置教程(以华硕AC66U B1为例)...
  7. 专科 java转go 翱翔之路(二)基础语法:匿名组合,方法,接口,map,json,异常处理,channel管道,select用法
  8. 2018-11-02 在代码中进行中文命名实践的短期目标
  9. Scikit-Learn 新版本发布!一行代码秒升级
  10. python自动化开发-[第十四天]-javascript(续)
  11. 学python需要什么基础-学习Python需要哪些基础知识?
  12. C语言制作简单计算器
  13. 一款优秀的中文识别库——ocr
  14. 给影像添加alpha通道(透明度)
  15. FlinkSql系列5之 Regular Join
  16. 【FFmpeg】使用 ffmpeg 软件让视频旋转适当角度(亲测有效)
  17. 你知道 biangbiang 面和编码有什么关系吗?万字长文,手拉手带你一步步认识编码
  18. 一个程序猿眼中的国内主流地图api
  19. Ubuntu下使用opencv完成图像程序编程操作
  20. 银联--网联--聚合支付

热门文章

  1. Vulkan填坑学习Day27-1—贴图LOD(mipmap)
  2. 推荐几个在线就能用的SQL 练习平台,你用过几个?
  3. 阿里腾讯都力推的一款 API 管理神器
  4. 一般性 DirectX 开发事宜
  5. 【无为则无心Python基础】— 62、Python中私有成员方法(类中行为的封装)
  6. Windows 安装 Scoop 包管理器
  7. 微信小程序轮播图放大全屏预览(爆料)
  8. sqlServer 修改默认1433端口
  9. 2、Fiddler APP抓包手机代理设置
  10. 操作系统内存管理,你能回答这8个问题吗?