class base
{
public:
virtual void showbase() {
// ----------
}
};
class base1 {
public:
virtual void showbase1() {
// -------
}
};
class derived : public base, public base1
{
void showbase() {
// ----
}
void showbase1() {
// -------
}
};
int main()
{
base* p = new derived();
p->showbase1();
base1* p1 = new derived();
p1->showbase();
}
根據我對虛擬函數的理解,是編譯器用運行時(vtable機制)處理它,那麼爲什麼我得到編譯時錯誤。運行時查詢C++中的多態性
什麼是錯誤? –
錯誤C2039:'showbase1()':不是'base'的成員,錯誤C2039:'showbase()':不是'base1'的成員,我理解這個問題,但是我的查詢爲什麼編譯器沒有處理運行時多態性。 – user2516685
查看更新後的答案re:運行時多態性和多重繼承。 –