C++: 多态 虚函数
2024-09-05 21:43:43
一.多态:
1.多态是什么:具有不同功能的函数可以用同一个函数名
2.静态多态:程序编译时决定,通过函数重载实现.
3.动态多态:程序运行时决定,通过虚函数实现.
二.虚函数:
1.引入目的:可以通过基类指针或引用来访问基类和派生类中的同名函数(简化多态函数的调用).
方法:先用基类指针指向该对象即可.
2.重载与虚函数:
重载处理的是同一层次上的同名函数问题(横向重载);
而虚函数处理的是不同派生层次上的同名函数问题(可理解为纵向重载)(多态)
3.虚析构函数:
建议使用虚析构函数,以保证在撤销动态存储空间时能得到正确的处理.
三.纯虚函数:
1.作用:在基类中为其派生类保留一个函数的名字,以便派生类跟据需要对它进行定义.如果基类没有保留函数名字,则无法实现多态性.
四.实例
struct ResultBit
{
uint8_t Level : ;
uint8_t Layer : ;
uint8_t Module : ;
uint16_t Code : ;
}; union Result
{
ResultBit Bit;
uint32_t All;
}; class Restorer
{
public:
virtual Result _rt Restore ( Result _in v ) = ;
//原型: virtual union const Restore ( union const & v ) = 0;
//这是个纯虚函数,virtual表示虚函数,=0告诉编译系统"这是纯虚函数"
//Restore ( union const & v ):函数及其参数
//纯虚函数没有函数体
//纯虚函数的作用(多态):在基类中为其派生类保留一个函数的名字,以便派生类根据需要对它进行定义.
//多态:不同派生层次上的同名函数
};
typedef Restorer* RestorerPtr;
最新文章
- 不要遍历dom
- php关于ob_start('ob_gzhandler')启用GZIP压缩的bug
- 百度编辑器 Ueditor 下拉处增加字体
- 对魔兽世界、支付宝、Linux三类软件的简单分析
- JAVA 中文转GBK内码方法
- various Sequence to Sequence Model
- Android(java)学习笔记91:泛型接口的概述和使用
- NPAPI插件开发
- Android 5.0及以上版本使用webview不能存储第三方Cookies解决方案
- SpringMVC随笔记录
- 升级adb注意事项
- 浏览器保存数据给app读取
- [swarthmore cs75] Compiler 5 – Egg-eater
- docker 部署 java 项目
- SpringBoot中配置起动时的数据库初始化角本
- 使用Eclipse的坑
- Postfix 邮件服务器搭建
- TFTP服务 简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,默认端口号为69
- linux五大搜索命令学习
- 登陆oracle数据库时提示“ORA-28002: 7 天之后口令将过期” 或提示 密码过期
热门文章
- 第一课:PHP 文件是什么?
- PHP分页类代码
- Java多线程之Deque与LinkedBlockingDeque深入分析
- leetcode-9-basic-binary search
- hdu 6312
- huu 1251
- python学习--python 连接SQLServer数据库(两种方法)
- 微信小程序开发 -- 设置屏幕亮度
- django 修改urls.py 报错误:TypeError: view must be a callable or a list/tuple in the case of include().
- PHP经典面试题目汇总(上篇)