C++ 還眞是麻煩啊。這兩者在子類的使用上毫無區別,結果一類型轉換就亂了……
GObject 解释這個太容易了。。
重定義:只是在子類定義一個同名函數(除去前綴)。用父類的接口和子類的效果
不同。
覆盖:父類在 class 裏登記虚函數指針,子類在自己的 class_init 裏覆盖之,
不論使用父類的接口還是子類的,都不會亂了。
唉呀,是不是太麻煩了,說不定會吓跑 GObject 的潜在學習者呢。
於 日,2012-07-15 於 14:03 +0800,Zind 提到:
父类与子类的成员函数的 signature 相同,应该叫 redefine 重定义,而不是
override 覆盖。
父类与子类的成员函数的 signature 相同,且父类的成员函数为 virtual,才
能称为 override 覆盖。