C++ 三大特性之-多态

news2024/11/15 21:33:07

简介

面向对象有三大特性:封装继承多态

多态:一个接口,多种实现

C++有两种多态形式:

  • 静态多态
  • 动态多态

静态多态

静态多态:编译期间的多态,即在编译阶段就能确定好最终要调用哪个方法。静态多态的函数调用和函数体绑定早

静态多态的两种实现方式:

  • 函数重载:普通函数的重载和成员函数的重载
  • 函数模板

函数重载

函数模板

函数模板是通用的函数描述,使用泛型的方式来定义函数。通过将类型作为参数,传递给模板,可以使编译器生成该类型的函数。

// 交换两个值,但是不清楚是int 还是 double,如果不使用模板,则要写两份代码
// 使用函数模板,将类型作为参数传递
template<class T>
class Swa(T a,T b)
{
    T temp;
    temp = a;
    a = b;
    b = temp;
};

动态多态

动态多态:运行时的多态,在程序执行期间,才能缺点调用哪个方法。继承是实现动态多态的首要前提

通过基类类型的引用或者指针调用虚函数

首先搞清楚这个对象的类型:

  • 静态类型:对象声明时的类型,编译时确定
  • 动态类型:目前所指对象的类型,运行时确定

在这里插入图片描述

必须是虚函数(派生类一定要重写基类中的虚函数)

class Base
{   
public :
    virtual void FunTest1( int _iTest){cout <<"Base::FunTest1()" << endl;}
};
class Derived : public Base
{
public :
    void FunTest1( int _iTest){cout <<"Derived ::FunTest1()" << endl;}
}

在这里插入图片描述
待补充…

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

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

相关文章

python简单实现网络爬虫

前言 在这一篇博客中&#xff0c;我会用python来实现一个简单的网络爬虫。简单的爬取一下一些音乐网站、小说网站的标题、关键字还有摘要&#xff01;所以这个爬虫并不是万能爬&#xff0c;只针对符合特定规则的网站使用。&#xff08;只使用于爬标题、关键字和摘要的&#xff…

[附源码]计算机毕业设计基于SpringBoot的在线作业批改系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

SORT4 SORT项目代码解析

SORT系列 SORT-1 项目配置运行-WINDOWS SORT-2 卡尔曼滤波推导和示例 SORT-3 匈牙利算法和SORT类 SORT-4 SORT项目代码解析 本项目地址 SORT项目逐层详解 main if __name__ __main__# 设置交互模式、参数、文件路径|# 创建 SORT 对象mot_tracker Sort(max_age, min_hits,io…

Python学习基础笔记二十七——内置函数

内置函数的概念&#xff1a;就是python直接提供给你使用的所有函数。 1、作用域相关&#xff1a; 1&#xff09;globals()&#xff1a; 获取全局变量的字典&#xff1b; 2&#xff09;locals()&#xff1a;获取执行本方法所在命名空间内局部变量的字典&#xff1b; 2、迭代器…

(二)SpringCloud+Security+Oauth2 微服务初步集成

一 引言 本文主要好介绍了SpringCloudSecurityOauth2 的初步集成,项目源码地址oauth2.0集成案例,以下案例主要是核心源码的解释,案例源码请查看案例源码 二 项目结构说明 oauth-server oauth认证中心 oauth-client oauth客户端 oauth-nacos 注册中心和配置中心 oauth-common …

IDM究竟有哪些优势 IDM的几种超实用功能

作为一款体积只有10M的下载软件&#xff0c;IDM却常年霸占着各软件评测榜的前列。它的界面简洁清爽&#xff0c;使用过程中无弹窗、无广告&#xff0c;小小的体积竟能将下载速度提升5倍&#xff01;该软件一进入中国市场&#xff0c;便受到了广大用户的追捧&#xff0c;被大家亲…

谁说Python只能用来敲代码,用Python来制作游戏你了解吗?

前言 Python的热度现在一直高居不下&#xff0c;比如&#xff0c;完成同一个任务&#xff0c;C语言要写1000行代码&#xff0c;Java只需要写100行&#xff0c;而Python可能只要20行。 那python还可以用来干什么&#xff1f;你知道哪些呢&#xff1f; &#xff08;文末送读者…

HTML静态网页作业——基于html+css+javascript+jquery+bootstarp响应式成都家乡介绍网页

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法&#xff0c;如盒子的嵌套、浮动、margin、border、background等属性的使用&#xff0c;外部大盒子设定居中&#xff0c;内部左中右布局&#xff0c;下方横向浮动排列&#xff0c;大学学习的前端知识点和布局方式都有…

Python采集电商平台数据信息

环境介绍 python 3.8pycharm 2021专业版selenium >>> pip install selenium3.141.0 Python当中的模块 操作 浏览器的驱动Chrome浏览器Chromedriver 浏览器驱动 操作浏览器 让 浏览器帮助我们去执行一些操作 模块准备 from selenium import webdriver # 操作浏…

数钥科技遭用户投诉:“招集令”被指息费高,曾有助贷平台被处罚

融资难、融资贵&#xff0c;一直世界性难题。在此背后&#xff0c;是信息不对称的问题。 而利用信息不对称&#xff0c;不少助贷机构游走其中&#xff0c;也带来了一些新的问题&#xff0c;比如高额服务费、砍头息等&#xff0c;侵害消费者个人信息也是另外一个问题。此前&…

SQL——基础查询

查看列 查看特定列 select 姓名 from 学生表select 姓名,性别,家庭住址 from 学生表查看所有列 select * from 学生表使用计算列 求和 select sum(price) from fruit求个数 select count(price) from fruit求价格提升 select price*1.05 from fruit求库存数量 select (…

useState源码解读 及 手撕 useState 实现

文章目录useState源码解读 及 手撕 useState 实现useState源码分析逻辑图源码解读mountStatemountWorkInProgressHook 函数updateStateupdateReducer 函数实现对比图实现效果只声明一个 hook重复调用同一个 hook声明多个不同的 hooks体验收获useState源码解读 及 手撕 useState…

MySQL分区表对NULL值的处理

GreatSQL社区原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本&#xff0c;使用上与MySQL一致。作者&#xff1a;王权富贵 1.概述 MySQL的分区表没有禁止NULL值作为分区表达式的值&#xff0c;无论它是列值还是用户提供的表…

CPP 核心编程4-重载递增运算符

#include "iostream"using namespace std;//递增运算符重载 //自定义整型 class MyInteger {friend ostream &operator<<(ostream &cout, MyInteger mi);public:MyInteger() {m_Num 0;}//重置前置运算符 返回引用是为了对同一个数进行操作MyInteger …

LSTM内部结构及前向传播原理——LSTM从零实现系列(1)

一、前言 作为专注于时间序列分析的玩家&#xff0c;虽然LSTM用了很久但一直没有写过一篇自己的LSTM原理详解&#xff0c;所以这次要写一个LSTM的从0到1的系列&#xff0c;从模型原理讲解到最后不借助三方框架自己手写代码来实现LSTM模型。本文本身没有特别独到之处&#xff0c…

Vue学习:el 与data的两种写法

el两种写法 法一&#xff1a;建立了联系 <!-- 准备容器 --><div id"root"><h1>hello,{{name}} </h1> <!-- {{插值语法}} --></div><script>new Vue({ el: #root,data: {name:Amy},});</script> 法二&#xff1a…

论文投稿指南——中国(中文EI)期刊推荐(第1期)

&#x1f680; EI是国际知名三大检索系统之一&#xff0c;在学术界的知名度和认可度仅次于SCI&#xff01;&#x1f384;&#x1f388; 【前言】 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊。其中&#xf…

java计算机毕业设计ssm特大城市地铁站卫生防疫系统5i80c(附源码、数据库)

java计算机毕业设计ssm特大城市地铁站卫生防疫系统5i80c&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持…

UDS服务基础篇之14

前言 你知道如果系统产生了DTC&#xff0c;应当如何清除呢&#xff1f;14服务具体的执行流程如何&#xff1f;14服务在使用过程中的常见bug又有哪些&#xff1f; 这篇&#xff0c;我们来一起探索并回答这些问题。为了便于大家理解&#xff0c;以下是本文的主题大纲&#xff1…

相控阵天线(十二):天线校准技术仿真介绍之旋转矢量法

目录简介旋转矢量法算法介绍旋转矢量法校准对方向图的影响旋转矢量法算法仿真移相器位数对旋转矢量法的影响多通道旋转矢量法算法仿真分区旋转矢量法算法仿真简介 由于制造公差和天线互耦的影响&#xff0c;天线各通道会呈现出较大的幅相误差&#xff0c;因此需对天线进行校准…