我知道 C++ 通过虚函数实现了运行时多态性,并且 virtual 关键字是继承的,但我没有看到在派生类中使用 virtual 关键字。
例如,在以下情况下,即使您在派生类中删除了虚拟关键字,ptr->method() 调用仍会转到派生::method。那么这个 virtual 关键字在派生类中做了什么额外的事情呢?
#include<iostream>
using namespace std;
class base
{
public:
virtual void method()
{
std::cout << std::endl << "BASE" << std::endl;
}
};
class derived: public base
{
public:
virtual void method()
{
std::cout << std::endl << "DERIVED" << std::endl;
}
};
int main()
{
base* ptr = new derived();
ptr->method();
return 9;
}