91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
自治县| 大悟县| 揭西县| 射洪县| 鸡东县| 西华县| 沅陵县| 平和县| 贵溪市| 拉萨市| 宣威市| 芒康县| 泗水县| 东港市| 阿拉善盟| 苗栗市| 丘北县| 孟津县| 侯马市| 白玉县| 吉林市| 合山市| 阿勒泰市| 乳山市| 柳州市| 兴义市| 高阳县| 三亚市| 油尖旺区| 文成县| 昆山市| 洛阳市| 麻城市| 大悟县| 南城县| 长沙市| 东明县| 广灵县| 沧源| 会同县| 繁峙县|