原创 C++中函数的重载、覆盖与隐藏

2014-12-22 16:09 1095 22 23 分类: MCU/ 嵌入式 文集: wince开发学习

C++中重载、覆盖、隐藏三个概念极易混淆,本人也多次搞错,现简单总结区分要点如下:

1、类成员函数的重载体现了C++的多态性,记住重载的概念存在和应用于同一个类中的不同成员函数,成员函数重载后在主程序中依据不同形参分别调用类中对应的重载后的成员函数;

2、覆盖和隐藏的概念很大程度上有别于重载,覆盖和隐藏发生在基类和派生类中,是类与类之间的关系,重载是同一个类中函数名相同参数不同的差别。通过虚函数(在基类中通过virtual来声明)如果派生类的成员函数与基类中成员函数同名同参,则该派生类函数发生了覆盖了基类的函数,覆盖的具体理解方式科归纳为运行时系统会根据实际的对象类型来调用相应的函数;

3、隐藏主要要与覆盖区分,首先如果派生类的成员函数与基类中的成员函数同名不同参或者同名同参但基类中的成员函数没有通过virtual声明为虚函数,基类中同名函数将被隐藏。隐藏的实际意义就是屏蔽,即如果在主程序中定义一个派生类对象和基类指针变量,将派生类对象的首地址交由基类指针变量后调用成员函数,运行时则调用该派生类中的成员函数而非基类中的同名函数,如果是覆盖的话则调用基类中的同名函数,这就是覆盖和隐藏的区别。20141222

文章评论1条评论)

登录后参与讨论

用户1383711 2015-7-15 11:27

谢谢
相关推荐阅读
用户539370 2016-04-20 10:45
PIC32795F512L单片机看门狗定时器应用
这几天研究了PIC32795F512L单片机中看门狗部分内容,pic32整体中文资料较少,针对本项目的设计要求,通过学习理解如下: 1、整体了解:WDT(WATCHDOG TIMER)被使能时...
用户539370 2016-04-08 10:25
PIC32MX795F12L单片机DMA方式UART数据传输的研究(下)
三、普通方式串口通信验证测试 普通方式串口通信实现较为简单,只要通过对具体UART口进行相应的配置即可实现串口收发数据,通过参考pic32_examples例程,串口配置的代码及说明如下: ...
用户539370 2016-04-08 09:43
PIC32MX795F12L单片机DMA方式UART数据传输的研究(上)
这段时间主要研究了该单片机的串口通信,经过对所有遇到问题的解决,最终掌握了DMA方式UART数据正确传输,为多频中波发射机控制器与上位机通讯打下了基础。 一、PIC32单片机基本知识概要 ...
用户539370 2014-12-18 15:58
总结过去,新的开始,保持技术新活力!
打开闲置两年的EDN博客,每天早上打开邮箱便会浏览下EDN两年来不离不弃地信件,今年正式毕业参加工作,越来越意识到总结和积累的重要性,求学期间做过的光伏并网逆变器和嵌入式开发的几个项目让我在单位上...
用户539370 2012-04-20 11:12
评论:@dreamliner's Blog 博客中提到的“在仪器驱动开发中使用VISA格式化I/O”
仪器驱动开发中使用VISA格式化I/O...
我要评论
1
22
关闭 站长推荐上一条 /2 下一条