c++

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

小樊
87
2024-08-06 06:17:11
栏目: 编程语言

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,实现了多态。

0
看了该问题的人还看了