重载和重写(overried有的书也叫做“覆盖”)的区别

上传人:工**** 文档编号:431158221 上传时间:2023-06-18 格式:DOCX 页数:2 大小:7.42KB
返回 下载 相关 举报
重载和重写(overried有的书也叫做“覆盖”)的区别_第1页
第1页 / 共2页
重载和重写(overried有的书也叫做“覆盖”)的区别_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《重载和重写(overried有的书也叫做“覆盖”)的区别》由会员分享,可在线阅读,更多相关《重载和重写(overried有的书也叫做“覆盖”)的区别(2页珍藏版)》请在金锄头文库上搜索。

重载(overload)和写(overried,有的 书也叫做“覆盖)的区别问题:重载(overload)和重写(overried,有的书也叫做覆盖) 的区别回答:参考答案:从定义上来说:重载是指允许存在多个同名函数而这些函数的参数表不凤或 许参数个数不同,或许参数类型不同,或许两者都不同)重写:是指子类重新定义父类虚函数的方法。从实现原理上来说:重载编译器根据函数不同的参数表对同名函数的名称做修饰, 然后这些同名函数就成了不同的函数(至少对于编译器来说是这样 的)。如,有两个同名函数:function func(p:integer):integer;和 function func(p:string):integer;。那么编译器做过修饰后的函数名 称可能是这样的:int_func、str_func。对于这两个函数的调用,在 编译器间就已经确定了,是静态的。也就是说,它们的地址在编译期 就绑定了(早绑定),因此,重载和多态无关!重写:和多态真正相关。当子类重新定义了父类的虚函数后,父 类指针根据赋给它的不同的子类指针,动态的调用属于子类的该函 数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数 的地址无法给出)。因此,这样的函数地址是在运行期绑定的(晚绑 定)。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号