調用在派生類中定義但在基類中不存在的虛函數時出錯?爲什麼這個錯誤當我有指向派生類的指針?調用虛函數時出錯
#include<iostream.h>
class A{
public:
virtual void fun()
{cout<<"A::fun()";
}
};
class B : public A
{
public:
virtual void fun()
{cout<<"B::fun()";
}
virtual void func()
{cout<<"B::func";
}
};
int main()
{
A *obj1=new B;
obj1->fun();
obj1->func();
}
是的,這是一個錯誤 - 我的編譯器說「 'A類'沒有名爲'func'的成員「您的問題是什麼? – 2010-03-25 09:44:17
爲什麼會出現這個錯誤。我有指向派生類的指針,那麼爲什麼這個錯誤? – sandeep 2010-03-25 09:44:51
你的指針不是指向派生類,而是指向基類。它被定義爲A *。使用指向派生類的指針初始化的事實不會改變! – mmmmmmmm 2010-03-25 13:49:47