函数重载 覆盖 隐藏

重载overload

函数名相同,但形参的个数或形参的类型不同。

仅返回值不同,不能定义为重载函数。

class Base {
public:void baseFun(int) { cout << "baseFun(int) in Base" << endl; }void baseFun(double) { cout << "baseFun(float) in Base" << endl; }
};

 

覆盖Override

派生类对基类virtual函数的重写(原型一样)。

class Base {
public:virtual void baseVirtualFun(int) { cout << "baseVirtualFun(float) in Base" << endl; }
};class Derived: public Base {
public:virtual void baseVirtualFun(int) { cout << "baseFun(float) in Derived" << endl; }
};

 

隐藏(另一个新的函数)

两种情况:

1) 如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。

2) 如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。

class Base {
public:virtual void baseVirtualFun(int) { cout << "baseVirtualFun(float) in Base" << endl; }
};class Derived: public Base
{
public:virtual void baseVirtualFun(float) { cout << "baseFun(float) in Derived" << endl; }
};

 

 

总结:重载是同一作用域,覆盖是派生类对基类virtual方法的重写,隐藏是两个类之间(可用using 引用)。

转载于:https://www.cnblogs.com/helloweworld/archive/2013/04/25/3043676.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360773.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux+svn+拉取版本_在linux客户端下管理svn版本库

把linux作为客户端管理svn版本库&#xff0c;不一定是svn服务器。1.svn管理命令用法&#xff1a;[rootxiaoyu ~]# svn --helpusage: svn [opations] [args]Subversion command-line client, version 1.7.14.Type svn help for help on a specific subcommand.Type svn --versi…

对OIM Web(UI)层进行压力测试

Oracle IDM中的默认配置保留20个专用于服务前端&#xff08;UI&#xff09;请求的线程 。 从根本上讲&#xff0c;这意味着应用程序服务器具有20个线程池&#xff0c;可用于为通过Web控制台&#xff08;/ identity或/ sysadmin&#xff09;访问OIM的用户提供服务。 对于Weblog…

umi config.js整体defineConfig配置

import { defineConfig } from umi;export default defineConfig({hash: true, // 配置是否让生成的文件包含 hash 后缀&#xff0c;通常用于增量发布和避免浏览器加载缓存。history: { // 配置 history 类型和配置项type: hash // 可选 browser、hash 和 memory},base: /, // …

在 Yii框架中使用session 的笔记:

在 Yii框架中使用session 的笔记&#xff1a; 首先&#xff0c;在Yii框架中&#xff0c;你不需要像标准PHP代码那样使用session_start(),在Yii框架中&#xff0c;autoStart 属性缺省被设置为true&#xff0c;所以&#xff0c;虽然没有使用session_start(),你仍然可以使用$_SESS…

java 拼接html_程序员用1.5小时写出的Java代码,让同事瞠目结舌!直呼优秀

1.曾经不止一次在生产中见过类似这样的代码&#xff1a;这有很多变种&#xff0c;例如用 Integer.valueOf(1)、 (Integer)1 之类的&#xff0c;那些细节都不重要。重要的是&#xff1a;凭空用一个 Integer 对象作为锁对象。2.AbstractComponentBuilderTemplateFactory3.HelloWo…

本地项目antd 修改.less文件导致内存溢出

项目场景&#xff1a; antd 项目&#xff0c;修改less文件会导致内存溢出 问题描述 本地环境antd 项目&#xff0c;修改less文件会导致内存溢出&#xff1b;如下 FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory原因分析&#xff1a; 这…

序列化代理模式

在上一篇文章中 &#xff0c;我谈到了一般的序列化。 这是更加集中的内容&#xff0c;并提供了一个细节&#xff1a; 序列化代理模式 。 这是处理序列化许多问题的一种好方法&#xff0c;通常是最好的方法。 如果开发人员只想了解有关该主题的一件事&#xff0c;我会告诉他。 …

函数分组学通MongoDB——第三天 细说高级操作

改章节个人在广东喝咖啡的时候突然想到的...明天就有想写几篇关于函数分组的文章&#xff0c;所以回家到后之就奋笔疾书的写出来发布了 明天跟大家分享一下mongodb中比拟好玩的识知&#xff0c;要主括包&#xff1a;聚合&#xff0c;标游。 一&#xff1a; 聚合 见常的聚合作操…

eps如何建立立体白模_服装立体裁剪教程 结构都是“立裁”出来的 才智服装

核心提示&#xff1a;基础立裁服装立体裁剪是指用白坯布为常用替代物&#xff0c;在人台上直接塑造服装样式&#xff0c;并进行样板制作的技术。由于立体裁剪是设计师主要依靠视觉进行的直观操作的过程&#xff0c;所以它具有激发和展开新的设计思维的功能。一、基础立裁服装立…

平衡抽象原理

使代码复杂易读和理解的一件事是&#xff0c;方法内部的指令处于不同的抽象级别。 假设我们的应用程序仅允许登录用户查看其朋友的旅行。 如果用户不是朋友&#xff0c;则不会显示任何行程。 一个例子&#xff1a; public List<Trip> tripsByFriend(User user, User l…

python编写姓名年龄_python小工具 - alert弹框输出姓名年龄、求和

# 导入tkinter的所有的包里面所有的内容from tkinter import *import tkinter.messageboxasmessagebox# 从Frame派生一个Application类&#xff0c;这是所有Widget的父容器classApplication(Frame):def __init__(self,masterNone):Frame.__init__(self,master)self.pack()self.…

IIS后台网站部署不支持PUT方法 405错误

在web.config文件中添加如下代码&#xff1b;删除模块WebDAVModule <system.webServer><modules runAllManagedModulesForAllRequests"true" runManagedModulesForWebDavRequests"true"><remove name"WebDAVModule"/></mod…

IntelliJ IDEA内部设计

IntelliJ IDEA的第一版于2001年1月发布&#xff0c;当时它是第一个集成了高级代码导航和代码重构功能的Java IDE之一。 2009年&#xff0c;JetBrains开源了其社区版本 。 从那时起&#xff0c;创建了许多基于它的IDE&#xff0c;例如Google的Android Studio。 让我们使用JArc…

TDD:MS自带的单元测试 之 线程模型和执行顺序

背景 我一直在呼喊“不要靠假设编程”&#xff0c;可是我却常常这么做。我用单元测试就是一种基于假设进行编程的反面教材&#xff0c;今天就下决心弄明白它。 主要想弄明白两个问题&#xff1a; 执行的所有单元测试方法的线程模型&#xff0c;是单线程&#xff1f;是多线程&am…

JS下载图片保存在本地

const imgUrl "";// 图片链接const a document.createElement(a);// 这里是将url转成blob地址&#xff0c;fetch(imgUrl) // 跨域时会报错.then(res > res.blob()).then(blob > { // 将链接地址字符内容转变成blob地址a.href URL.createObjectURL(blob);a.…

bat文件名操作_Excel按文件名制作目录,你复制粘贴花一小时,同事只要十秒搞定...

Excel有个特殊操作&#xff0c;那就是对文件夹中上百个文件&#xff0c;用Excel按照文件名制作目录&#xff0c;我们只需要点击对于的超链接就可以快速打开对于的文件。如上图所示&#xff0c;我们的文件夹中包含有26个视频和Excel文件&#xff0c;因为文件数量过多所以我们需要…

整数返回poj1005——I Think I Need a Houseboat

这两天一直在研究整数返回之类的问题,上午正好有机会和大家讨论一下. 原题&#xff1a; Description Fred Mapper is considering purchasing some land in Louisiana to build his house on. In the process of investigating the land, he learned that the state of Louisia…

偷窥JCache API(JSR 107)

这篇文章从较高的层次介绍了JCache API&#xff0c;并提供了一个预告片–刚够您&#xff08;希望&#xff09;开始对此发痒&#xff1b;-) 在这篇文章中...。 JCache概述 JCache API&#xff0c;实现 JCache API支持的&#xff08;Java&#xff09;平台 快速了解Oracle Coh…

electron IPC通信报错Uncaught (in promise) Error: An object could not be cloned.

项目场景&#xff1a; electronreact 问题描述 electron 中用IPC通信 Uncaught (in promise) Error: An object could not be cloned. e Error: An object could not be cloned.at EventEmitter.i.invoke (node:electron/js2c/sandbox_bundle:33)at uploadImg (YakitPluginI…

Linux C中发现无法连接到math.h中的数学函数解决办法

Linux 下使用数学函数 今天在编译一个用到log函数的c文件时&#xff0c;遇到一个错误&#xff1a;/tmp/ccQuh0ns.o(.text0x2bb): In function Compute:: undefined reference to log到网上查了一下这个问题&#xff0c;原因及解决方法如下&#xff1a;出现这个错误是因为编译器…