C++:重载、重写与重定义

一、重载、重写与重定义的概念

C++中,重载、重写和重定义是三个与函数和类成员相关的概念,但它们具有不同的含义和用途。

重载:是指在同一作用域内,可以有多个名称相同但参数列表(参数类型、参数个数或参数顺序)不同的函数或成员函数。这些函数可以是普通的函数,也可以是类的成员函数。通过函数重载,我们可以使用相同的函数名来执行不同的任务,这取决于传递给函数的参数类型和数量。

在C++中,一个类可以有多个构造函数,只要它们的参数列表不同即可。这种情况下,我们可以说这些构造函数是重载的。

class MyClass 
{
public:// 无参构造函数  MyClass() {// ...  }// 带一个整型参数的构造函数  MyClass(int value) {// ...  }// 带一个浮点型参数的构造函数  MyClass(double value) {// ...  }// 带两个参数的构造函数  MyClass(int a, double b) {// ...  }
};

 重定义(隐藏):也称为重复定义或重复声明,通常指的是在相同的作用域内多次定义同一个函数或变量,这会导致编译错误。但是,在类继承的上下文中,当我们说“重定义”时,可能是指派生类中对基类成员变量的重新声明,或者对基类非虚成员函数的重新声明,因为它会隐藏基类中的成员。

class A
{
public:void fun(){cout << "func()" << endl;}
};
class B : public A
{
public:void fun(int i){A::fun();cout << "func(int i)->" << i << endl;}
};void Test()
{B b;b.fun(10);
};

重写(覆盖):特指在派生类中定义与基类虚函数同名、同参数列表(包括参数类型、参数个数和参数顺序)的函数。重写用于实现基类和派生类之间的多态性。当通过基类指针或引用来调用一个虚函数时,如果指针或引用指向的是派生类对象,那么将调用派生类中重写的虚函数,而不是基类中的函数。这允许派生类为基类中的虚函数提供自己的实现。

class Base {
public:virtual void func1() { cout << "Base::func1" << endl; }virtual void func2() { cout << "Base::func2" << endl; }
private:int a;
};
class Derive :public Base {
public:virtual void func1() { cout << "Derive::func1" << endl; }virtual void func3() { cout << "Derive::func3" << endl; }virtual void func4() { cout << "Derive::func4" << endl; }
private:int b;
};

二、重载、重写与重定义的对比

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

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

相关文章

Offer必备算法38_贪心算法四_八道力扣题详解(由易到难)

目录 ①力扣56. 合并区间 解析代码 ②力扣435. 无重叠区间 解析代码 ③力扣452. 用最少数量的箭引爆气球 解析代码 ④力扣397. 整数替换 解析代码1_递归改记忆化搜索 解析代码2_贪心策略 ⑤力扣354. 俄罗斯套娃信封问题 解析代码1_动态规划&#xff08;超时&#xf…

攻防演练-防守单位常见防守策略

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 防守单位常见防守策略 01 防守单位常见防守策略 为普及网络安全知识&#xff0c;提高网络安全防范意识&#xff0c;和网络安全工作技能。我们将向大家介绍网络安全攻防演练中防守单位的一些关键策…

数据结构(七)复杂度渐进表示

数据结构&#xff08;七&#xff09;复杂度渐进表示 要点&#xff1a;复杂度相加取较大值&#xff0c;嵌套取二者乘积 思考&#xff1a;为什么只需要知道复杂度的趋势就可以了&#xff1f; 01 复杂度的渐进表示法 Ω复杂度渐进表示法区分复杂度T(n)的上界&#xff08;o&…

Android11系统去掉截屏功能

1. 去掉Settings里截屏菜单条目&#xff0c;packages/apps/Settings&#xff1a; diff --git a/res/xml/top_level_settings.xml b/res/xml/top_level_settings.xml old mode 100644 new mode 100755 index a5e4d06..a9420bb --- a/res/xml/top_level_settings.xmlb/res/xml/t…

【JVM基础篇】打破双亲委派机制

文章目录 打破双亲委派机制自定义类加载器双亲委派机制核心代码打破双亲委派机制自定义类加载器父类怎么是AppClassLoader呢&#xff1f;两个自定义类加载器加载相同限定名的类&#xff0c;不会冲突吗&#xff1f;拓展类加载器功能 线程上下文类加载器JDBC案例那么问题来了&…

博客管理系统

文章目录 博客管理系统一、项目演示二、项目介绍三、系统部分功能截图四、部分代码展示五、底部获取项目&#xff08;9.9&#xffe5;带走&#xff09; 博客管理系统 一、项目演示 博客系统 二、项目介绍 三个角色&#xff1a;游客 用户 管理员 游客可以浏览文章&#xff0c…

[Kubernetes] sealos 部署 K8s v1.25.0 集群

文章目录 1.sealos 介绍2.操作系统基础配置3.安装部署 K8s4.验证 K8s 集群5.部署测试资源 1.sealos 介绍 Sealos 是一个基于 Kubernetes 内核的云操作系统发行版。它采用云原生方式&#xff0c;摒弃传统的云计算架构&#xff0c;转向以 Kubernetes 为云内核的新架构。这使得企…

FileZilla一款免费开源的FTP软件,中文正式版 v3.67.0

01 软件介绍 FileZilla 客户端是一个高效且可信的跨平台应用程序&#xff0c;支持 FTP、 FTPS 和 SFTP 协议&#xff0c;其设计宗旨在于为用户提供一个功能丰富且直观的图形界面。此客户端的核心特性包括一个站点管理器&#xff0c;该管理器能有效地存储和管理用户连接详情及登…

c++ (C++ Primer 中文版(第 5 版))奇妙判奇偶

奇妙判奇偶 平时&#xff0c;咱们判断一个数是奇还是偶时&#xff0c;使用对2取模的方法&#xff0c;今天偶然看到一个新的方法&#xff1a;i& 0x1。该法将i与16进制1按位与&#xff0c;效果是取i二进制最近一位的数值&#xff0c;是0就是偶数&#xff0c;是1就是奇数。测…

tauri2.0bate版本支持移动端开发了,ios和android开发有福了

Tauri 是一个开源框架&#xff0c;用于构建轻量级、高性能的桌面应用程序。它是使用 Web 技术&#xff08;如 HTML、CSS 和 JavaScript&#xff09;来创建用户界面&#xff0c;同时利用 Rust 语言提供的api功能。Tauri 的目标是提供一种更高效、更安全的方式来开发跨平台的桌面…

26.特殊类的设计(设计不能被拷贝的类、只能在堆上创建对象的类、只能在栈上创建对象的类、不能被继承的类/只能创建一个对象(单例模式))

1.设计一个类&#xff0c;不能被拷贝 拷贝只会发生在两个场景中&#xff1a;拷贝构造函数以及赋值运算符重载 因此想要让一个类禁止拷贝&#xff0c;只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。 方式一&#xff1a;C98中&#xff0c; 将拷贝构造函数与赋值运算符…

OpenAI 或将推出多模态人工智能数字助理;研究发现部分 AI 系统已学会「说谎」丨 RTE 开发者日报 Vol.203

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

技术支持-KA指标提升

一 提升关键客户&#xff08;Key Account, KA&#xff09;问题解决效率与体验 建立快速响应机制&#xff1a; 设立专门的KA服务团队&#xff0c;确保客户问题能被即时接收和响应。实施多渠道接入&#xff08;如电话、短信、邮件、在线聊天等&#xff09;&#xff0c;让客户可以…

黄啤:醇厚与经典的传承

啤酒的历史悠久&#xff0c;种类繁多&#xff0c;而黄啤作为其中的一种经典风格&#xff0c;一直备受人们的喜爱。Fendi club黄啤作为精酿啤酒的代表&#xff0c;完善地传承了黄啤的醇厚与经典&#xff0c;为消费者带来了与众不同的口感体验。 Fendi club黄啤在酿造过程中&…

【C++风云录】深度剖析:人体解剖学与医学影像处理

计算机视觉与医学成像&#xff1a;六种工具的比较 前言 本文旨在通过详尽而深入的介绍&#xff0c;让读者更好地理解和使用六种重要的程序库&#xff1a;ITK-SNAP、Slicer、VTK、OpenCV、dcm4che以及DCMTK。每一个程序库的部分均包含了它们的简介&#xff0c;安装方法&#x…

转移插槽笔记

4.3.4.转移插槽 我们要将num存储到7004节点&#xff0c;因此需要先看看num的插槽是多少&#xff1a; 如上图所示&#xff0c;num的插槽为2765. 我们可以将0~3000的插槽从7001转移到7004&#xff0c;命令格式如下&#xff1a; 具体命令如下&#xff1a; 建立连接&#xff1a;…

消息 队列

使用消息队列实现的2个终端之间的互相聊天&#xff0c;并使用信号控制消息队列的读取方式。 当键盘按ctrlc的时候&#xff0c;切换消息读取方式&#xff0c;一般情况为读取指定编号的消息&#xff0c;按ctrlc之后&#xff0c;指定的编号不读取&#xff0c;读取其他所有编号的消…

【C++ 】红黑树

1.1 红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路 径会比其他路径长出俩倍&#xff…

信息系统安全选择题 1-10章 汇总【太原理工大学】

第一章 1.信息未经授权不能改变的安全特性称为_D b.有效性 a.保密性 d.完整性 c.可控性 2.信息系统防止信息非法泄露的安全特性称为_D b.有效性 a.完整性 d.保密性 c.可控性 6.《国际通用信息安全评价标准ISO/IEC 15408》在安全保证要求中定义了7个评价保证等级&…

上海理工大学程序设计 D方块游戏

原题链接&#xff1a;D-方块游戏 本来以为是搜索&#xff0c;没想到是数学。 //冷静&#xff0c;冷静&#xff0c;冷静 //调不出来就重构 #pragma GCC optimize(2) #pragma GCC optimize("O3") #include<bits/stdc.h> #define endl \n using namespace std;…