C++中如何进行多态编程?

我正在学习C++,但我对多态编程还不是很了解。我知道多态是面向对象编程中的重要概念,它允许我们使用基类指针调用派生类对象的方法。但我不知道如何在C++中实现它。我想了解一些关于多态编程的基本概念和实现方法,如果有示例代码更好。希望有经验的C++开发者能够帮助我。

提问时间:2023-09-03 09:00:54 编辑时间:2023-09-03 09:00:56 提问者: 雨中彩虹
  • 梦之蓝
    7

    在C++中,要实现多态编程需要使用虚函数。 在基类中声明一个虚函数,派生类可以重写该虚函数,通过基类指针调用该虚函数时,程序会根据具体的实例类型调用相应的派生类函数。以下是一个简单的示例代码:

    #include<iostream>
    using namespace std;
    
    class Shape{
    public:
        virtual void area() = 0;
    };
    
    class Circle : public Shape {
    public:
        void area() override {
            cout << "计算圆的面积" << endl;
        }
    };
    
    class Square : public Shape {
    public:
        void area() override {
            cout << "计算正方形的面积" << endl;
        }
    };
    
    int main() {
        Shape* shape;
    
        Circle circle;
        Square square;
    
        shape = &circle;
        shape->area(); // 输出:计算圆的面积
    
        shape = &square;
        shape->area(); // 输出:计算正方形的面积
    
        return 0;
    }
    

    在上面的代码中,我们定义了一个基类Shape和两个派生类CircleSquareShape中声明了一个纯虚函数area()。派生类CircleSquare重写了Shape中的area()函数,并给出了具体的实现。 在main()函数中,我们定义了一个基类指针shape,并将其分别指向CircleSquare类的实例。 通过shape指针调用area()函数时,程序会根据实例类型调用相应的函数,这就是多态的体现。

    回答时间:2023-09-03 09:00:59