亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

C++靜態成員函數怎樣實現多態

c++
小樊
81
2024-11-09 03:08:31
欄目: 編程語言

在 C++ 中,要實現多態,可以使用虛函數(virtual function)。虛函數是在基類中聲明的,可以在派生類中重寫(override)它。當通過基類指針或引用調用虛函數時,實際調用的函數是對象所指向對象的類中定義的版本。這就是動態綁定或多態的概念。

下面是一個簡單的示例,展示了如何使用虛函數實現多態:

#include <iostream>

// 基類 Shape
class Shape {
public:
    // 虛函數 area()
    virtual double area() const {
        return 0.0;
    }
};

// 派生類 Circle,繼承自 Shape
class Circle : public Shape {
public:
    // 重寫虛函數 area()
    double area() const override {
        return 3.14 * radius * radius;
    }

private:
    double radius;
};

// 派生類 Rectangle,繼承自 Shape
class Rectangle : public Shape {
public:
    // 重寫虛函數 area()
    double area() const override {
        return width * height;
    }

private:
    double width;
    double height;
};

int main() {
    // 使用基類指針指向派生類對象
    Shape* shape1 = new Circle();
    Shape* shape2 = new Rectangle();

    // 通過基類指針調用虛函數 area(),實現多態
    std::cout << "Shape 1 area: " << shape1->area() << std::endl;
    std::cout << "Shape 2 area: " << shape2->area() << std::endl;

    delete shape1;
    delete shape2;

    return 0;
}

在這個示例中,我們定義了一個基類 Shape 和兩個派生類 CircleRectangle。基類中有一個虛函數 area(),用于計算形狀的面積。派生類分別重寫了 area() 函數,以計算圓形和矩形的面積。

main() 函數中,我們使用基類指針 shape1shape2 分別指向 CircleRectangle 對象。然后通過基類指針調用 area() 函數,實際調用的函數是對象所指向對象的類中定義的版本。這就是多態的體現。

0
昌黎县| 乌鲁木齐市| 个旧市| 行唐县| 二连浩特市| 临洮县| 驻马店市| 濮阳市| 安达市| 紫云| 德钦县| 五常市| 武鸣县| 泾阳县| 遵化市| 西平县| 泾源县| 南平市| 郴州市| 乐业县| 洱源县| 秦安县| 遂宁市| 凤冈县| 泰安市| 磴口县| 南投市| 华池县| 青神县| 顺昌县| 融水| 湘潭市| 健康| 广东省| 阿克| 浙江省| 吉隆县| 霍山县| 安康市| 长丰县| 大悟县|