问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在多态性中,可以调用同一个函数名却可以实现不同的功能,为什么?

发布网友 发布时间:2022-05-24 07:07

我来回答

1个回答

热心网友 时间:2023-10-08 02:31

函数重载就是一个简单的静态多态,静态多态是编译器在编译期间完成的,编译器会根据实参类型来选择调用合适的函数,如果有合适的函数可以调用就调,没有的话就会发出警告或者报错。

静态多态的原理是,

C++代码在编译时会对函数进行重命名,从这个角度讲函数重载本质上还是不同的函数,占不同的内存,入口地址一也不一样,当函数调用时,编译器会跟据传入的实参去逐个匹配,已选择对应的函数,如果匹配失败,编译器会报错(链接时),这叫重载决议。

虚函数动态多态的原理是

编译器处理虚函数的方法是:
给每个对象添加一个指针,存放了指向虚函数表的地址,虚函数表存储了为类对象进行声明的虚函数地址。比如基类对象包含一个指针,该指针指向基类所有虚函数的地址表,派生类对象将包含一个指向独立地址表的指针,如果派生类提供了虚函数的新定义,该虚函数表将保存新函数的地址,如果派生类没有重新定义虚函数,该虚函数表将保存函数原始版本的地址。如果派生类定义了新的虚函数,则该函数的地址将被添加到虚函数表中,注意虚函数无论多少个都只需要在对象中添加一个虚函数表的地址。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Intel 酷睿i5 750(散)基本参数 Intel 酷睿i5 750详细参数 Intel 酷睿i5 750(盒)重要参数 Intel 酷睿i5 750(散)重要参数 说一说,你是怎样将一样东西重复利用的吧? 大家用过的毛巾怎么处理啊 做一付上联第一个带中,下联第一个字带秋的 PS2罪恶都市的故事秘籍 PSP侠盗猎车输入秘籍问题 PSP侠盗列车罪恶都市交通工具秘籍是什么? C++中类的成员函数重定义和虚函数有什么区别? 求一个包含虚函数的三层继承关系的面向对象的程序,要求用虚指针直接访问其中的某个对象包含的虚函数 动态绑定为什么必须要通过指针或引用调用虚函数 在C++中,虚函数比起函数重载有什么优势? 请问:虚函数是否和类型兼容规则是否矛盾 关于C++虚函数和函数覆盖的问题 c++虚函数的问题 创建一个基类的指针指向派生类的对象,基类有一个虚 简单的虚函数 求高手指点 4G内存,Windows7 32位为什么只能读到2G 电脑4G内存,为什么系统只认2G? 我的笔记本装了两个4G的内存条,为什么只能显示2G内存? 为什么电脑插了4g内存条却显示2g 朦的形近字并组词 4g内存,重做系统之后只识别2g了 为什么我的手机内存卡是4g的,但手机里显示的sd卡只有2g左右 怀孕快四个月还会恶心干呕是怎么回? 女孩取名一个字的 比全国计算机等级4级 更高的是什么考试? 怎么下载手机QQ大厅 妈妈离开了 韦强伤心地大哭 如果你是老师的话怎么安慰的? 请问编程和数据库里有的时候需要用到参数,这个参数是什么意思啊? 建立数据库所使用的参数存储在哪个系统数据库中? 老式自行车新换的前轴调节挡怎么调节最加位置,挡是松点好还是紧点好。 冬季会下冰苞吗 我想玩美服的LOL,但无法注册帐号,求好心人帮忙注册或者告诉我在哪里买帐号。谢谢 LOL美服30级新账号在哪可以买到啊 想买个LOL美服帐号,有朋友知道怎么买吗 在哪儿购买美服LOL账号 美服lol号哪里买? javascript 中的var now = new Date()语句在Java中如何实现? LOL美服怎么玩,没得美服帐号的嘛,怎么创? 华为p7什么时候停产 请问华为p7什么时候上市?还有就是htc816什么时候出移动版本的? 百度首页打开变成其他网页 为什么我的网页打开却不是百度首页了 打开网页自动跳转到百度首页是怎么回事 求好听好看的女孩名字 本人性田 谢谢 微信好友给我发红包 我不想领 怎么退还给他 除了等24小时自动返还 还有什么方法 求助 魅族MX桌面图标并不见了 为什么魅族手机的桌面图标会不见了?