【转】重载(overload)、覆盖(override)、隐藏(hide) 辨析
对这些概念老是记不清楚,转了一篇比较通俗的文章帮助记忆,高手请绕道^_^~ 写正题之前,先给出几个关键字的中英文对照,重载(overload),覆盖(override),隐藏(hide)。在早期的C++书籍中,可能翻译的人不熟悉专业用语(也不能怪他们,他们不是搞计算机编程的,他们是英语专业的),常常把重载(overload)和覆盖(override)搞错! 我们先来看一些代码及其编译结果。 实例一: #include "stdafx.h" #include class CB { public: void f(int) { cout << "CB::f(int)" << endl; } }; class CD : public CB { public: void f(int,int) { cout << "CD::f(int,int)" << endl; } void test() { f(1); } }; int main(int argc, char* argv[]) { return 0; } 编译了一下 error C2660: 'f' : function does not take 1 parameters 结论:在类CD这个域中,没有f(int)这样的函数,基类中的void f(int)被隐藏 。 如果把派生CD中成员函数void f(int,int