重载应该叫overload,重写叫override
重载某个方法是在同一个类中发生的!
重写是在子类中重写父类中的方法。但是,为什么我常常看到别人说继承一个CStatic的子类CMyStatic,并“重载”OnPaint函数很多人都有类似这样的说发。为什么?

解决方案 »

  1.   

    建议以后这些关键词不要使用中文了 ̄ ̄ ̄
    不是说中文不好,而是把人搞晕了,反不如就直接使用E文,反正意思大家都明白:重载就是重写,重写也就是垂载。继承一个子类,然后重载某函数,这种说法是最多见的了!!!在这里,其意思确实是重载,而不是重写!!例:
    父类CParent,子类CChild
    函数func()被子类重载了
    定义实例
    CParent parent;
    CChild  child;
    如果child.func()调用的是新写的函数;而parent.func()则调用的是旧的函数。
    而child and parent均是同一类型(CParent),你能说不是重载吗?呵呵,喜欢专N角尖的朋友
      

  2.   

    重写是覆盖的意思,就是override.就是子类里面有和父类相同函数,包括虚函数。
    重载是overload,就是相同的函数名,但参数不一样,如平常说的某个函数有多少个overload版本就是这个意思。
      

  3.   

    楼主你自己的理解是很正确的。
    不过普通的全局函数也可以override的,不一定要类成员。
      

  4.   

    学了,学了,跟楼主学习了~ ;)
    说实话,俺之前还真的没有搞懂overload和override的区别呢,今天,明白了!
      

  5.   

    另外,把override改叫"改写"会不会比叫"重写"要好些?至少从字面上和"重载"尽量区分开。
      

  6.   

    隐藏的几个特征:      
    1 在基类和派生类之间      
    2 函数名字相同      
     如果参数类型不同的时候,有无virtual 关键字都为隐藏      
     如果参数类型相同,则,无virtual 关键字时为隐藏      
    顺便说说函数的重载与覆盖:      重载:      
    1 在同一个类里面      
    2 函数名字相同      
    3 函数参数不同      
    4 virtual 关键字有无均可      
       
    覆盖:      
    1 在基类和派生类之间      
    2 函数名字相同      
    3 参数类型相同      
    4 有virtual关键字