C++派生类的多态如何实现

avatar
作者
筋斗云
阅读量:0

C++中派生类的多态是通过虚函数和虚函数表实现的。在基类中声明一个虚函数,然后在派生类中重写这个虚函数,就可以实现多态。

具体来说,当一个指向基类的指针或引用调用一个虚函数时,实际上会调用指向派生类对象的虚函数。这是因为每个对象都有一个虚函数表,存储了该对象的虚函数地址,通过这个虚函数表可以实现动态绑定,实现多态性。

以下是一个简单的示例:

#include <iostream>  class Base { public:     virtual void print() {         std::cout << "Base::print() called" << std::endl;     } };  class Derived : public Base { public:     void print() override {         std::cout << "Derived::print() called" << std::endl;     } };  int main() {     Base* basePtr = new Derived();     basePtr->print(); // 输出 Derived::print() called      delete basePtr;     return 0; } 

在上面的示例中,基类Base中声明了一个虚函数print(),派生类Derived重写了这个虚函数。在main()函数中,我们用一个指向基类对象的指针basePtr指向一个派生类对象,并调用print()函数,最终输出的是Derived::print() called,实现了多态。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!