【发布时间】:2015-09-22 19:35:03
【问题描述】:
我知道如何使用虚函数来实现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??
}
//输出:派生类
【问题讨论】:
-
它不是(不能是)运行时多态性,因为在编译期间仅根据类型信息确定确切的方法。不涉及运行时调度。
-
所以这甚至不是方法覆盖?我从studytonight.com/cpp/function-overriding.php 得到了代码,请告诉我这个覆盖示例是否错误地放在了网站中
-
这被称为Function Hiding。
-
@user2864740 非常感谢。这消除了我的疑虑。
标签: polymorphism runtime virtual