我知道如何使用虚函数来实现RT多态。通过使用基类引用并在其中存储派生类对象。然后使用此引用调用重写方法。 但这也是真的吗?
class Base
{
public:
void show();
{
cout << "Base class\t";
}
};
class Derived:public Base
{
public:
void show()
{
cout << "Derived Class";
}
}
int main()
{
Base b; //Base class object
Derived d; //Derived class object
d.show(); // is this run time polymorphism??
}
//输出:派生类
答案 0 :(得分:2)
不,不是。因为这个
Derived d;
Base *b = &d;
b->show();
打印
Base class
然而,对于运行时多态,它将打印
Derived Class
您的示例中没有多态性,因为在调用站点已知对象的确切类型。你也隐藏了基本功能,没有覆盖也没有超载它。