【发布时间】:2019-01-08 14:04:33
【问题描述】:
#include<iostream>
using namespace std;
class Base
{
public:
void show() { cout<<" In Base \n"; }
};
class Derived: public Base
{
public:
void show() { cout<<"In Derived \n"; }
};
int main(void)
{
Base *bp = new Derived;
bp->show(); // RUN-TIME POLYMORPHISM
return 0;
}
在上面的代码中,show() 在基类中声明并在派生类中被覆盖。基类指针bp 指向派生类对象。现在,当bp 调用非虚拟show() 函数时。
输出:
In Base
但是,bp 指向派生类,那么为什么调用基类函数而不是派生类函数呢?
【问题讨论】:
标签: c++ inheritance virtual