当前位置: 首页 > news >正文

Overload, Override and Overwrite ( copy)

  Overload, Override and Overwrite 

Overload(重载):在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型、顺序不同),即函数重载。
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。

Override(覆盖):是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。

Overwrite(重写):是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual
关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual
关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。

 

--也就是说,使用Overwrite使用的时候,如果基类使用了virtual关键字,在函数名和参数一样的情况下,基类的函数不会

隐藏。

 

如果基类有某个函数的多个重载(overload)版本,而你在子类中重写(overwrite)了其中的一个,或是子类添加新的函数版本,则所有基类的重载版本都被遮蔽。所以,正常情况下,在子类中应重写基类中的所有重载版本。

具体地讲,继承类中的重载和重写都包含了重写的涵义,即只要函数名一样,基类的函数版本就会被遮蔽,所以,在派生类中要保持基类的重载版本,就应该 重写所有基类的重载版本。重载只在当当前类中有效,继承会失去重载的特性。也就是说,把基类的重载函数放在继承类里,就必须重写。

相关文章:

  • 远程桌面连接
  • Bing Maps进阶系列八:在Bing Maps中集成OpenStreetMap地图
  • KiB是什么单位
  • 关注程序员健康之——白天打个盹提高记忆力
  • UML建模之业务处理模型(Business Process Model,BPM)
  • RealView Development Suite 4.0 Professional安装
  • SharePoint开发中常见的几种错误类型及解决方法!
  • 实时内存数据库的数据管理
  • 主要城市公交路线下载Mono版(使用MonoDevelop开发)
  • 工业级开发中的一些常识
  • 第一个shell
  • Android环境搭建及相关命令
  • c# asp.net 日历控件(9)
  • 献给各位已婚者
  • 上海世博会园区进行首次试运行
  • 2017届校招提前批面试回顾
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • co.js - 让异步代码同步化
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • Docker: 容器互访的三种方式
  • es的写入过程
  • Java反射-动态类加载和重新加载
  • laravel with 查询列表限制条数
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • SSH 免密登录
  • vue2.0项目引入element-ui
  • 电商搜索引擎的架构设计和性能优化
  • 二维平面内的碰撞检测【一】
  • 讲清楚之javascript作用域
  • 前端面试总结(at, md)
  • 移动端 h5开发相关内容总结(三)
  • 用Visual Studio开发以太坊智能合约
  • (1)虚拟机的安装与使用,linux系统安装
  • (13)Hive调优——动态分区导致的小文件问题
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (vue)页面文件上传获取:action地址
  • (zt)最盛行的警世狂言(爆笑)
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (四)模仿学习-完成后台管理页面查询
  • (五)Python 垃圾回收机制
  • (一)80c52学习之旅-起始篇
  • (一)Linux+Windows下安装ffmpeg
  • (转)原始图像数据和PDF中的图像数据
  • .NET DataGridView数据绑定说明
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .net程序集学习心得
  • .NET程序员迈向卓越的必由之路
  • @Bean有哪些属性