class Base {
public:
virtual void f();
void f(int);
virtual ~Base();
};
class Derived : public Base {
public:
void f();
};
int main()
{
Derived *ptr = new Derived;
ptr->f(1);
delete ptr;
return 0;
}
ptr-> f(1);顯示以下錯誤:「函數調用中的參數太多」。C++中的多態現象爲什麼這不起作用?
爲什麼這是不可能的?是不是繼承了所有基函數的形式,並且可以自由使用它們中的任何一個? 我可以明確地調用它,它會工作,但爲什麼不允許這樣做?
'f(int)'在'derived'中沒有被重載,你期望什麼? – SingerOfTheFall
對於多態性,'ptr'應該是一個指向* base *類的指針。 –
但不應該派生繼承基函數?或者它不適用於指針? – Dannz