精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>C/C++>>C、C++语言基础>>也说说overload和override

主题:也说说overload和override
发信人: compiler()
整理人: skyice(2000-04-04 13:44:08), 站内信件
【 在 zelor (张作乐) 的大作中提到: 】
:     上回说起OVERLOAD和OVERRIDE的区别来,绕着绕着俺自己都
: 糊涂了,遂回去
: 查了一查,在这里瞎掰一二,为抛砖引玉之用,贻笑
: 大方之处望各位不吝赐教.
:    .......
    上回说起OVERLOAD和OVERRIDE的区别来,绕着绕着俺自己都 
糊涂了,遂回去 
查了一查,在这里瞎掰一二,为抛砖引玉之用,贻笑 
大方之处望各位不吝赐教. 
    OVERLOAD就是用同样的名称去干不同的活,台湾同胞叫多重 
载入咱大陆叫重载,省事。OVERLOAD可以是不同变量类型的函数或者是运算符。 

而且,OVERLOAD可以出现在同一个类中,或者说很多 
情况下都是指在同一个类中同名而不同形式的函数或 
运算符(函数)。 
    而OVERRIDE则是子类对父类中的虚拟函数的继承 
或重载,必须与父类中要OVERRIDE的函数形式相同。 
事实上,OVERRIDE是C++实现多态性的方法。奇怪的是 
或许是俺孤陋寡闻吧,台湾称OVERRIDE为“凌越”, 
还是比较切题的,但好象大陆对OVERRIDE的翻译似乎比 
较模糊…… 
    至于二者的关系,我个人认为,OVERRIDE是特殊的 
OVERLOAD,不知各位是否这样认为呢? 
~~~~~~~~~没有必要将两者相比,根本是不同的实现方式,
         OVERLOAD是在COMPILE时用编译器实现的,
         OVERRIDE时RUNTIME使用VTABL实现的。


--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.106.94.139]

[关闭][返回]