C++多态虚函数/纯虚函数demo
#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相关推荐
- 什么是纯虚函数 纯虚函数的作用 如何定义使用纯虚函数
什么是纯虚函数 纯虚函数的作用 如何定义使用纯虚函数 一 定义: 纯虚函数是一种特殊的虚函数,它的一般格式如下: class <类名> { virtual <类型>& ...
- C++: 虚函数 / 纯虚函数
虚函数 ● 虚函数是指在基类内部声明的成员函数前添加关键字 virtual 指明的函数 ● 虚函数存在的意义是为了实现多态,让派生类能够重写(override)其基类的成员函数 ● 派生类重写基类的虚 ...
- 面试中常被问到(11)虚函数/纯虚函数
虚函数 如何定义一个虚函数?在基类成员函数前加入virtual关键字,但并不代表此函数不被实现,只是说明允许基类指针调用派生类重写的此函数 一个类只要声明有虚函数或者从基类继承了虚函数,在编译过程中就 ...
- 【C++ 语言】面向对象 ( 继承 | 重写 | 子类调用父类方法 | 静态多态 | 动态多态 | 虚函数 | 纯虚函数 )
文章目录 类的继承 方法的重写 子类中调用父类方法 多态 虚函数 虚函数示例 纯虚函数 相关代码 类的继承 1. 继承表示 : C++ 中继承可以使用 ":" 符号 , 格式为 & ...
- C++:多态与虚函数,纯虚函数
1.多态的机制与虚函数的机制 1.1 多态的机制 1.当在类中使用virtual声明一个函数为虚函数时,在编译时,编译器会自动在基类中默默地安插一个虚函数表指针,同时的.rodata段为这类生成一张虚 ...
- C++ 虚函数 纯虚函数 抽象类 代码示例
其中抽象类指的是在类的定义中出现了纯虚函数,导致无法实例化,. 代码:头文件 #include "stdafx.h"using namespace std;class Person ...
- 虚函数 纯虚函数 虚基类说明
原文:http://www.cnblogs.com/ms-frank/archive/2008/01/16/1041310.html 虚基类 在说明其作用前先看一段代码 [cpp] view plai ...
- 38.【C++ 虚函数 纯虚函数 虚基类 (最全详解)】
虚函数.虚基类.纯虚函数 (一).虚函数 1.什么是虚函数: 2.虚函数的格式: 3.关于虚函数的注意事项: 4.虚函数的作用: 5.虚函数访问格式 6.虚函数的各种疑难杂症 [当指针是基类.但虚函数 ...
- c++多态--2(计算器,纯虚函数和抽象类)
为什么要用多态 早期方法不利于扩展 开闭原则 开闭原则 对扩展开放 对修改关闭 利用多态实现-利于后期扩展,结构性非常好,可读性高,效率稍微低,发生多态内部结构复杂 多态成立的条件 又继承 子类重写父 ...
最新文章
- java 验签_JAVA验签方式转换为PHP代码,求教怎么写
- C++实现二分查找(递归方法和非递归方法)
- python基本使用-Python time库基本使用方法分析
- Java实现类似C/C++中的__FILE__、__FUNC__、__
- 福建2021高考厦门一中成绩查询,2021年福建厦门各高中中考分数线及录取时间结果查询安排...
- java oss 批量传输_阿里云OSS对象存储,服务端签名后直传阿里云OSS
- 调焦后焦实现不同距离成像_如何用手机拍出单反的效果,系列学习(一)AF参数“自动调焦”...
- 十面阿里Java程序员终拿下阿里P6offer
- matlab 带通滤波器_这就够了?一阶高通数字滤波器
- C 编译器、链接器、加载器详解
- 安卓listview点击空白事件_王者荣耀安卓苹果ios改空白名;重复名字特殊昵称教程...
- 已知棱长求三棱锥的表面积和体积
- js获取某一天是星期几
- python读取包含层级关系的excel
- 你看这雪花如此的美丽
- XP系统的机械硬盘无法读取,Ntoskrnl.exe损坏硬盘锁定还是坏道?
- 什么是MVC?怎么在 php 中搭建 MVC?
- 手机和电脑在局域网下快速传递文件,隐私保证,快速搭建一个FTP
- 聂文涛谈糖尿病并发症的成因
- HTML5生日祝福网页代码
热门文章
- Codeforces 86C Genetic engineering (AC自己主动机+dp)
- 翻译 - 元编程动态方法之public_send
- 艾伟:为WPF项目创建单元测试
- BPMN 2.0 流程设计
- 提升工作效率的优秀工具收藏
- 谷歌有情怀!谷歌开放大规模音频数据集 AudioSet
- Ubuntu启动密码丢失的找回
- 异常已存在具有相同键的条目。_从Viticis Fructus分离的环烯醚萜类化合物抑制紫杉醇诱导的小鼠机械性异常性疼痛...
- android 混淆移除log,关于安卓代码混淆和Release版本中去除Debug信息
- SSH反向代理转发至内网msf