C++中重载、重写(覆盖)和隐藏的区别

C++中重载、重写(覆盖)和隐藏的区别

ID:38220836

大小:22.13 KB

页数:7页

时间:2019-06-06

C++中重载、重写(覆盖)和隐藏的区别_第1页
C++中重载、重写(覆盖)和隐藏的区别_第2页
C++中重载、重写(覆盖)和隐藏的区别_第3页
C++中重载、重写(覆盖)和隐藏的区别_第4页
C++中重载、重写(覆盖)和隐藏的区别_第5页
资源描述:

《C++中重载、重写(覆盖)和隐藏的区别》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++中重载、重写(覆盖)和隐藏的区别这篇文章主要介绍了C++中重载、重写(覆盖)和隐藏的区别,是C++面向对象程序设计非常重要的概念,需要的朋友可以参考下本文实例讲述了C++中重载、重写(覆盖)和隐藏的区别,对于C++面向对象程序设计来说是非常重要的概念。具体分析如下:1.重载:重载从overload翻译过来,是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。示例代码如下:?12345678classA{public:  voidtest(inti);  voidtest(dou

2、blei);  voidtest(inti,doublej);  voidtest(doublei,intj);  inttest(inti);        //错误,非重载};前四个互为重载函数,最后一个和第一个不是重载函数。2.隐藏:隐藏是指派生类的函数屏蔽了与其同名的基类函数。注意只要同名函数,不管参数列表是否相同,基类函数都会被隐藏。实例代码如下:?123456789101112131415161718192021#includeusingnamespacestd;classA{public:  voidfun1(inti,intj){  

3、  cout<<"A::fun1():"<

4、新定义的函数。其函数名,参数列表,返回值类型,所有都必须同基类中被重写的函数一致。只有函数体不同(花括号内),派生类调用时会调用派生类的重写函数,不会调用被重写函数。重写的基类中被重写的函数必须有virtual修饰。实例代码如下:?1234567891011121314#includeusingnamespacestd;classA{public:  virtualvoidfun3(inti){    cout<<"A::fun3():"<

5、oidfun3(doublei){    cout<<"B::fun3():"<fun3(3);  pa=&b;  pa->fun3(5);  system("pause");  return0;}上面为虚函数实现多态的代码,不明白的先看虚函数实现多态的原理。重载和重写的区别:(1)范围区别:重写和被重写的函数在不同的类中,重载和被重载的函数在同一类中。(2)参数区别:重写与被重写的函数参数列表一定相同,重载和被重载的函

6、数参数列表一定不同。(3)virtual的区别:重写的基类必须要有virtual修饰,重载函数和被重载函数可以被virtual修饰,也可以没有。隐藏和重写,重载的区别:(1)与重载范围不同:隐藏函数和被隐藏函数在不同类中。(2)参数的区别:隐藏函数和被隐藏函数参数列表可以相同,也可以不同,但函数名一定同;当参数不同时,无论基类中的函数是否被virtual修饰,基类函数都是被隐藏,而不是被重写。调试运行如下代码:?123456789101112131415161718#includeusingnamespacestd;classA{public:  v

7、oidfun1(inti,intj){    cout<<"A::fun1():"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。