我想获得 C++ 中以下内容的确切术语。
请考虑以下玩具示例:
class A{
public:
virtual void f(){ std::cout << "This is A" << std::endl; };
};
class B: public A{
public:
virtual void f(){ std::cout << "This is B" << std::endl; };
};
int main(int argc, char** argv){
A* ptr = new A(); //Base class pointer pointing to base class object
ptr->f(); //Base class method is called
delete ptr;
ptr = new B(); ////Base class pointer pointing to derived class object
ptr->f(); //Derived class method is called
delete ptr;
return 0;
}
输出是: 这是 A 这是 B
我想知道确切的 C++ 术语。是多态性还是方法覆盖还是其他?
最主要的是我使用的是基类指针。当指针指向基类对象时,基类方法被调用。当它指向派生类对象时,将调用派生类方法,前提是该方法在两个类中都声明为虚拟。
谢谢