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

溫馨提示×

C++類的繼承虛函數怎樣用

c++
小樊
82
2024-10-31 10:42:56
欄目: 編程語言

在C++中,虛函數(virtual function)允許我們在派生類中重寫基類中的函數。當使用繼承時,如果基類中的某個成員函數被聲明為虛函數,那么派生類中的同名函數將自動成為虛函數。這使得我們可以通過基類指針或引用來調用派生類中的實現,從而實現多態性。

以下是一個簡單的示例,展示了如何使用繼承和虛函數:

#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 {
        double radius = 5.0; // 假設半徑為 5
        return 3.14159 * radius * radius;
    }
};

// 派生類 Rectangle,繼承自 Shape
class Rectangle : public Shape {
public:
    // 重寫基類中的虛函數 area()
    double area() const override {
        double width = 4.0; // 假設寬度為 4
        double height = 6.0; // 假設高度為 6
        return width * height;
    }
};

int main() {
    // 使用基類指針指向派生類對象
    Shape* shape_ptr = new Circle();
    std::cout << "圓的面積: " << shape_ptr->area() << std::endl;

    shape_ptr = new Rectangle();
    std::cout << "矩形的面積: " << shape_ptr->area() << std::endl;

    // 釋放內存
    delete shape_ptr;

    return 0;
}

在這個示例中,我們定義了一個名為Shape的基類,其中包含一個虛函數area()。然后,我們定義了兩個派生類CircleRectangle,分別表示圓形和矩形。這兩個派生類都重寫了基類中的area()函數,以實現各自的面積計算。

main()函數中,我們使用基類指針shape_ptr分別指向CircleRectangle對象,并通過基類指針調用area()函數。由于area()是虛函數,因此會根據實際對象類型調用相應的派生類實現。最后,我們輸出計算得到的面積。

0
盖州市| 元阳县| 广汉市| 伽师县| 甘谷县| 双柏县| 呈贡县| 东港市| 工布江达县| 龙岩市| 大关县| 右玉县| 南岸区| 平凉市| 清河县| 景德镇市| 东乡| 宁城县| 曲周县| 繁昌县| 福鼎市| 南乐县| 巫山县| 鹰潭市| 兴安盟| 苏尼特右旗| 抚远县| 西乌珠穆沁旗| 安徽省| 军事| 东方市| 东明县| 密山市| 岚皋县| 微山县| 承德市| 新田县| 临猗县| 肇州县| 韶关市| 华蓥市|