发信人: 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]
  | 
 
 
 |