博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重载与覆盖的差别
阅读量:4970 次
发布时间:2019-06-12

本文共 733 字,大约阅读时间需要 2 分钟。

     对于在同一个可訪问区内被声明的几个具有不同參数列(參数的类型、个数、顺序不同)的同名函数,程序会依据不同的參数列表来确定详细调用哪个函数。这样的机制叫重载overload),overlaod不关心函数的返回值。

      覆盖override)是指派生类中存在又一次定义的函数,其函数名、參数列、返回值类型必须同父类的相相应被覆盖的函数严格一致,覆盖函数和被覆盖函数仅仅有函数体(花括号里的部分)不同,当派生类对象调用子类中同名函数时。会自己主动调用子类中的覆盖版本号,而不是父类中的被覆盖版本号。

      成员函数被重载(overload)的特征例如以下:

(1)同样的范围(在同一个类中) ;

(2)函数名称同样。

(3)參数不同;

(4)virtualkeyword可有可无。

       覆盖(override)的特征例如以下:

(a)不同的范围(分别位于派生类和基类之中);

(b)函数名称同样;

(c)參数同样;

(d)基类函数必须有virtualkeyword。

     说明:虚函数总是在派生类中被改写,这样的改写叫做“override”.

     override是指派生类重写基类的虚函数。就像某个类中重写了还有一个类中的某个函数,重写的函数必须有一致的參数表和返回值。override----一直没有合适的中文词汇来相应。翻译为“覆盖”更贴切。

     overload约定俗成地被翻译为“重载”,是指编写一个与已有函数同名可是參数表不同的函数。比如。一个函数既能够接受整型数作为參数。也能够接受浮点数作为參数。

重载不是一种面向对象的编程。而仅仅是一种语法规则。

重载与多态没有直接关系。

 

转载于:https://www.cnblogs.com/wzzkaifa/p/7039998.html

你可能感兴趣的文章
hdu1502 , Regular Words, dp,高精度加法
查看>>
20120227_CET6
查看>>
SpringBoot在idea中的热部署配置
查看>>
MyEclipse连接SQL Server 2008数据库的操作方法
查看>>
leetcode【67】-Bulb Switcher
查看>>
JS验证图片格式和大小并预览
查看>>
laravel5.2 移植到新服务器上除了“/”路由 ,其它路由对应的页面显示报404错误(Object not found!)———新装的LAMP没有加载Rewrite模块...
查看>>
编写高质量代码--改善python程序的建议(六)
查看>>
windows xp 中的administrator帐户不在用户登录内怎么解决?
查看>>
接口和抽象类有什么区别
查看>>
Codeforces Round #206 (Div. 2)
查看>>
Mycat分表分库
查看>>
模板的文件名和方法名一定要一致!!
查看>>
**p
查看>>
优先队列详解
查看>>
VS2012 创建项目失败,,提示为找到约束。。。。
查看>>
设计类图
查看>>
类对象
查看>>
ios 上架流程
查看>>
ajax连接池和XMLHttpRequest
查看>>