中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
新丰县| 南漳县| 上饶市| 恩平市| 百色市| 德庆县| 华容县| 涟源市| 白城市| 朝阳市| 台北市| 贵州省| 全椒县| 宁强县| 黑山县| 会同县| 柞水县| 宁安市| 万年县| 镇雄县| 都匀市| 依兰县| 肥东县| 南靖县| 桐柏县| 北流市| 淄博市| 永城市| 绍兴市| 榆社县| 彰化市| 洪洞县| 桃园市| 八宿县| 繁昌县| 阿合奇县| 犍为县| 平湖市| 玉龙| 闽清县| 余庆县|