iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >怎样通过函数实现C++多态性
  • 490
分享到

怎样通过函数实现C++多态性

2023-06-17 16:06:36 490人浏览 八月长安
摘要

这期内容当中小编将会给大家带来有关怎样通过函数实现c++多态性,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C++多态性主要体现在虚函数的调用,在C++中,虚函数的调用使用的是动态绑定,也有人说是晚捆绑,

这期内容当中小编将会给大家带来有关怎样通过函数实现c++多态性,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

C++多态性主要体现在虚函数的调用,在C++中,虚函数的调用使用的是动态绑定,也有人说是晚捆绑,也就是在程序运行时才决定调用的函数,即使程序员不知道对象类型,程序仍然可以作出适合该对象类型的行为。

简单的说,虚函数就是在函数原型前加上virtual关键字。函数一旦被声明为虚函数,即使类在改写它的时候没有将其声明为虚函数,它从该点的继承层次结构中仍然是虚函数。如果基类中一个函数被声明为虚函数,在若干子类中有着不同的实现,那么我们在创建若干子类的不同对象时,可以用基类的指针或者引用来指明子类对象并且调用相应子类的函数。

虚函数的定义方式如下:

◆类的静态成员函数不可以定义为虚函数;
◆类的构造函数不可以定义为虚函数;
◆非类的函数不可以定义为虚函数。

纯虚函数是在声明虚函数时初始化为0的函数。

#include<memory> #include<iOStream> using namespace std;  Virtual void print() const = 0;

抽象类

简单的说,带有一个或多个未实现的纯虚函数的类是抽象类。如果一个类继承自一个抽象类,但它没有全部实现父类里面所有的纯虚函数,那么那些纯虚函数在子类中仍然是纯虚的,这个子类仍然是抽象类,仍然不能实例化对象。

抽象类是一种特殊的类,只能作为基类来使用,其纯函数的实现由派生类给出。虽然不能实例化抽象类,但我们可以声明一个抽象类的指针和引用,在实例化对象时,可以用不同的子类来实现,从而实现多态性操作。只有当派生类将基类中的所有的纯虚函数都实现的时候,它才不再是抽象类。

C++多态性

从广义上说,C++多态性是指一段程序能够处理多种类型对象的能力。在C++语言中,多态性可以通过强制多态、重载多态、类型参数化多态、包含多态等多种实现形式。所谓多态就是通过类的继承,使得同一个函数可以根据调用他的对象的类型作出不同的响应。它也继承和重载共同构成面向对象的3大编程特性。

C++多态性通过虚函数来实现,当我们用基类的指针来调用虚函数时,程序会根据对象的属性选择其自身的函数实现。即使程序员不知道对象类型,程序仍然可以作出适合该对象类型的行为。

C++语言支持两种类型的多态:一种是编译时的多态(静态多态),另一种是运行时的多态(动态多态)。在编译时的多态是通过静态联编实现的,而在运行时的多态则是通过动态联编实现的。

上述就是小编为大家分享的怎样通过函数实现C++多态性了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网其他教程频道。

--结束END--

本文标题: 怎样通过函数实现C++多态性

本文链接: https://www.lsjlt.com/news/290996.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎样通过函数实现C++多态性
    这期内容当中小编将会给大家带来有关怎样通过函数实现C++多态性,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C++多态性主要体现在虚函数的调用,在C++中,虚函数的调用使用的是动态绑定,也有人说是晚捆绑,...
    99+
    2023-06-17
  • C++ 函数重载如何实现多态性?
    函数重载可用于实现多态性,即通过基类指针调用派生类方法,编译器根据实际参数类型选择重载版本。示例中,animal 类定义虚拟 makesound() 函数,dog 和 cat 类重写该函...
    99+
    2024-04-13
    c++ 多态性 作用域
  • python如何实现函数多态性
    在python实现函数的多态性,具体方法如下:def remove_user(self,user_or_username):try:#If user_or_username is a User objectusername = user_o...
    99+
    2024-04-02
  • Python中怎么通过@classmethod实现多态
    这篇文章主要介绍了Python中怎么通过@classmethod实现多态的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python中怎么通过@classmethod实现多态文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-07-04
  • C#中怎么实现多态性
    在C#中实现多态性一般通过继承和接口实现。具体方法如下: 继承:通过创建一个父类和多个子类,子类继承父类的特性,并且可以重写父类的...
    99+
    2024-03-06
    C#
  • 详解C++虚函数中多态性的实现原理
    目录什么是虚函数多态性的实现多态的底层原理多态性的好处总结在面向对象的编程中,多态性是一个非常重要的概念。多态性意味着在不同的上下文中使用同一对象时,可以产生不同的行为。C++是一种...
    99+
    2023-05-19
    C++虚函数的多态性原理 C++虚函数 多态性 C++虚函数
  • C++中怎么通过C语言实现函数重载
    这篇文章给大家介绍C++中怎么通过C语言实现函数重载,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C++函数重载的相关模拟代码:int (*func)(void);   int&...
    99+
    2023-06-17
  • C++ 函数重载和重写中多态性的体现
    c++++ 中的多态性:函数重载允许具有相同名称但不同参数列表的多个函数,根据调用时的参数类型选择执行的函数。函数重写允许派生类重新定义基类中已存在的方法,从而实现不同类型的行为,具体取...
    99+
    2024-04-20
    函数重载 函数重写 c++
  • CLR Via C#静态构造函数的性能是怎样的
    本篇内容主要讲解“CLR Via C#静态构造函数的性能是怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CLR Via C#静态构造函数的性能是怎样的”吧!1 CLR Via C#静态构造...
    99+
    2023-06-17
  • C++中的多态问题—理解虚函数表及多态实现原理
    目录一、多态的概念概念构成条件二、虚函数的重写重写的定义重写的特殊情况override和final关键字区分重写、重载、重定义抽象类的概念三、多态的实现原理父类对象模型补充:生成默认...
    99+
    2023-02-05
    C++中的多态 C++虚函数表 C++多态实现原理
  • C++中怎么实现多态
    C++中怎么实现多态,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。实现了C++多态 2 5 1 6#include < iostream>&nb...
    99+
    2023-06-17
  • OpenCV-Python怎么实现通用形态学函数
    这篇文章将为大家详细讲解有关OpenCV-Python怎么实现通用形态学函数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。通用形态学函数,我们介绍了形态学的基础腐蚀与膨胀操作,而将腐蚀与膨胀结合起来进行组...
    99+
    2023-06-15
  • 如何理解C++多态的实现过程
    如何理解C++多态的实现过程,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。多态描述的是使用基类的指针或引用操作多个类型的能力。我们知道,子类的指针是可以隐式转化为父类的,所...
    99+
    2023-06-17
  • OpenCV-Python实现通用形态学函数
    目录通用形态学函数开运算闭运算形态学梯度运算顶帽运算黑帽运算结构元函数通用形态学函数 上篇博文,我们介绍了形态学的基础腐蚀与膨胀操作,而将腐蚀与膨胀结合起来进行组合,我们就能实现开运...
    99+
    2024-04-02
  • PHP5中怎么实现多态性
    PHP5中怎么实现多态性,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、 PHP 5和多态性本文想讨论面向对象编程中最为重要的部分之一--多态性的设计。为了说明问题,我使用了...
    99+
    2023-06-17
  • STL 函数对象是否支持多态性?如何实现?
    stl函数对象支持多态性,实现方式如下:使用虚拟函数和虚继承定义抽象基类及其派生类。为每个派生类定义特定版本的函数。将具体类作为参数传递给算法。 STL 函数对象是否支持多态性? 标准...
    99+
    2024-04-25
    多态性 stl
  • 怎样通过Vue实现@人的功能
    本篇文章为大家展示了怎样通过Vue实现@人的功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。下面采用vue,同时增加鼠标点击事件和一些页面小优化基本结构新建一个sandBox.vue文件编写功能的...
    99+
    2023-06-22
  • C++的多态和虚函数实例分析
    这篇文章主要介绍了C++的多态和虚函数实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++的多态和虚函数实例分析文章都会有所收获,下面我们一起来看看吧。一、C++的面试常考点阿里虽然是国内Java的第一...
    99+
    2023-06-29
  • c++中为什么可以通过指针或引用实现多态详解
    引言: 在c++中司空见惯的事情就是:可以通过指针和引用可以实现多态,而对象不可以。 那为什么?让我们来解开这神秘的暗纱! 1、 类对象的存储方式: 在一个类的实例中,只会存放非静态...
    99+
    2024-04-02
  • 通过CSS数学函数实现动画特效
    目录前言CSS 数学函数绝对值中位数数轴上两点距离三角函数例子一维交错动画初始状态应用动画交错动画二维交错动画初始状态应用动画交错动画另一种动画余弦波动动画初始状态余弦排列波动动画交...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作