最近我開始知道這一點 - 如果派生類重新定義基類成員方法,則所有具有相同名稱的基類方法都隱藏在派生類中。隱藏基類中的所有重載方法
#include<iostream>
using namespace std;
class Base
{
public:
int fun()
{
cout<<"Base::fun() called";
}
int fun(int i)
{
cout<<"Base::fun(int i) called";
}
};
class Derived: public Base
{
public:
int fun()
{
cout<<"Derived::fun() called";
}
};
int main()
{
Derived d;
d.fun(5); // Compiler Error
return 0;
}
錯誤: 在函數 '廉政的main()': 第30行:錯誤:調用 '派生::樂趣(INT)' 編譯因爲-Wfatal,錯誤不匹配功能。
但只是想知道背後的原因?爲什麼它不叫調用基類的方法(因爲派生類是從基類派生的)
你得到哪個編譯器錯誤? – CAMOBAP 2013-04-08 13:54:05
可能的重複:http://stackoverflow.com/q/4837399/951890 – 2013-04-08 13:54:08
@ vaughn:我通過提供的鏈接,但我不太清楚。多數民衆贊成爲什麼再次發佈此問題:) – 2013-04-08 14:03:04