#include <iostream>
using namespace std;class A //A是一个抽象类,不能new A直接实例化.
{
public:virtual void out1()=0; //纯虚函数:由子类实现virtual ~A(){};virtual void out2() //虚函数:默认实现{cout<<"A(out2)"<<endl;}void out3() //普通函数:强制实现{cout<<"A(out3)"<<endl;}
};class B:public A
{
public://virtual ~B(){};void out1()//纯虚函数:由子类实现{cout<<"B(out1)"<<endl;}  void out2()//虚函数:默认实现{cout<<"B(out2)"<<endl;}  void out3(){cout<<"B(out3)"<<endl;}
};int main()
{/*多态:1.父类指针指向子类对象(不可倒过来.)2.虚函数与纯虚函数确实调用子类的重写(覆盖)的函数,普通函数还是调用父类函数.*/A *ab = new B();ab->out1();//子类实现父类的纯虚函数,此时调用子类out1()ab->out2();//子类重写(覆盖)父类的虚函数,此时调用子类out2()ab->out3();//父类是普通函数,没有多态功能.cout<<"************************"<<endl;B *bb = new B();bb->out1();bb->out2();bb->out3();cout<<"************************"<<endl;B cc;cc.out1();cc.out2();cc.out3();cout<<"************************"<<endl;//A是一个抽象类,不能new A直接实例化.错误写法
/*A dd = new A;dd.out1();dd.out2();dd.out3();
*/delete ab;delete bb;return 0;
}

C++多态虚函数/纯虚函数demo相关推荐

  1. 什么是纯虚函数 纯虚函数的作用 如何定义使用纯虚函数

    什么是纯虚函数 纯虚函数的作用 如何定义使用纯虚函数   一 定义: 纯虚函数是一种特殊的虚函数,它的一般格式如下:  class <类名>  {  virtual <类型>& ...

  2. C++: 虚函数 / 纯虚函数

    虚函数 ● 虚函数是指在基类内部声明的成员函数前添加关键字 virtual 指明的函数 ● 虚函数存在的意义是为了实现多态,让派生类能够重写(override)其基类的成员函数 ● 派生类重写基类的虚 ...

  3. 面试中常被问到(11)虚函数/纯虚函数

    虚函数 如何定义一个虚函数?在基类成员函数前加入virtual关键字,但并不代表此函数不被实现,只是说明允许基类指针调用派生类重写的此函数 一个类只要声明有虚函数或者从基类继承了虚函数,在编译过程中就 ...

  4. 【C++ 语言】面向对象 ( 继承 | 重写 | 子类调用父类方法 | 静态多态 | 动态多态 | 虚函数 | 纯虚函数 )

    文章目录 类的继承 方法的重写 子类中调用父类方法 多态 虚函数 虚函数示例 纯虚函数 相关代码 类的继承 1. 继承表示 : C++ 中继承可以使用 ":" 符号 , 格式为 & ...

  5. C++:多态与虚函数,纯虚函数

    1.多态的机制与虚函数的机制 1.1 多态的机制 1.当在类中使用virtual声明一个函数为虚函数时,在编译时,编译器会自动在基类中默默地安插一个虚函数表指针,同时的.rodata段为这类生成一张虚 ...

  6. C++ 虚函数 纯虚函数 抽象类 代码示例

    其中抽象类指的是在类的定义中出现了纯虚函数,导致无法实例化,. 代码:头文件 #include "stdafx.h"using namespace std;class Person ...

  7. 虚函数 纯虚函数 虚基类说明

    原文:http://www.cnblogs.com/ms-frank/archive/2008/01/16/1041310.html 虚基类 在说明其作用前先看一段代码 [cpp] view plai ...

  8. 38.【C++ 虚函数 纯虚函数 虚基类 (最全详解)】

    虚函数.虚基类.纯虚函数 (一).虚函数 1.什么是虚函数: 2.虚函数的格式: 3.关于虚函数的注意事项: 4.虚函数的作用: 5.虚函数访问格式 6.虚函数的各种疑难杂症 [当指针是基类.但虚函数 ...

  9. c++多态--2(计算器,纯虚函数和抽象类)

    为什么要用多态 早期方法不利于扩展 开闭原则 开闭原则 对扩展开放 对修改关闭 利用多态实现-利于后期扩展,结构性非常好,可读性高,效率稍微低,发生多态内部结构复杂 多态成立的条件 又继承 子类重写父 ...

最新文章

  1. java 验签_JAVA验签方式转换为PHP代码,求教怎么写
  2. C++实现二分查找(递归方法和非递归方法)
  3. python基本使用-Python time库基本使用方法分析
  4. Java实现类似C/C++中的__FILE__、__FUNC__、__
  5. 福建2021高考厦门一中成绩查询,2021年福建厦门各高中中考分数线及录取时间结果查询安排...
  6. java oss 批量传输_阿里云OSS对象存储,服务端签名后直传阿里云OSS
  7. 调焦后焦实现不同距离成像_如何用手机拍出单反的效果,系列学习(一)AF参数“自动调焦”...
  8. 十面阿里Java程序员终拿下阿里P6offer
  9. matlab 带通滤波器_这就够了?一阶高通数字滤波器
  10. C 编译器、链接器、加载器详解
  11. 安卓listview点击空白事件_王者荣耀安卓苹果ios改空白名;重复名字特殊昵称教程...
  12. 已知棱长求三棱锥的表面积和体积
  13. js获取某一天是星期几
  14. python读取包含层级关系的excel
  15. 你看这雪花如此的美丽
  16. XP系统的机械硬盘无法读取,Ntoskrnl.exe损坏硬盘锁定还是坏道?
  17. 什么是MVC?怎么在 php 中搭建 MVC?
  18. 手机和电脑在局域网下快速传递文件,隐私保证,快速搭建一个FTP
  19. 聂文涛谈糖尿病并发症的成因
  20. HTML5生日祝福网页代码

热门文章

  1. Codeforces 86C Genetic engineering (AC自己主动机+dp)
  2. 翻译 - 元编程动态方法之public_send
  3. 艾伟:为WPF项目创建单元测试
  4. BPMN 2.0 流程设计
  5. 提升工作效率的优秀工具收藏
  6. 谷歌有情怀!谷歌开放大规模音频数据集 AudioSet
  7. Ubuntu启动密码丢失的找回
  8. 异常已存在具有相同键的条目。_从Viticis Fructus分离的环烯醚萜类化合物抑制紫杉醇诱导的小鼠机械性异常性疼痛...
  9. android 混淆移除log,关于安卓代码混淆和Release版本中去除Debug信息
  10. SSH反向代理转发至内网msf