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

溫馨提示×

C++純虛函數如何定義

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

在 C++ 中,純虛函數是在基類中聲明的虛函數,它沒有定義具體的實現,而是用= 0來表示。派生類必須實現這個純虛函數,否則它們也將成為抽象類,無法實例化。

下面是一個簡單的純虛函數的定義示例:

#include <iostream>
using namespace std;

// 基類 Shape
class Shape {
public:
    // 構造函數
    Shape() {
        cout << "Shape 構造函數被調用" << endl;
    }

    // 虛析構函數
    virtual ~Shape() {
        cout << "Shape 析構函數被調用" << endl;
    }

    // 純虛函數,計算面積
    virtual double area() const = 0;
};

// 派生類 Circle,繼承自 Shape
class Circle : public Shape {
public:
    // 構造函數
    Circle(double radius) : radius_(radius) {
        cout << "Circle 構造函數被調用" << endl;
    }

    // 析構函數
    ~Circle() {
        cout << "Circle 析構函數被調用" << endl;
    }

    // 實現純虛函數 area
    double area() const override {
        return 3.14 * radius_ * radius_;
    }

private:
    double radius_;
};

int main() {
    // 由于 Shape 是抽象類,無法實例化對象
    // Shape shape; // 錯誤

    // 創建一個指向 Shape 的指針,指向一個派生類對象
    Shape* shape = new Circle(5.0);

    // 調用 area 函數
    cout << "圓的面積: " << shape->area() << endl;

    // 釋放內存
    delete shape;

    return 0;
}

在這個例子中,我們定義了一個抽象基類 Shape,其中包含一個純虛函數 area()。然后我們定義了一個派生類 Circle,繼承自 Shape,并實現了 area() 函數。在 main() 函數中,我們創建了一個指向 Shape 的指針,指向一個 Circle 對象,并調用了 area() 函數。注意,我們不能創建 Shape 類的對象,因為它是一個抽象類。

0
静安区| 乌兰浩特市| 祁门县| 桦南县| 玛沁县| 仁布县| 永丰县| 武邑县| 景泰县| 天等县| 岳西县| 邢台县| 利津县| 阿勒泰市| 宜阳县| 米林县| 晋城| 德清县| 资溪县| 江陵县| 永顺县| 边坝县| 晋宁县| 隆回县| 广东省| 汉川市| 江阴市| 孙吴县| 巨鹿县| 周至县| 金堂县| 资溪县| 库伦旗| 弥渡县| 延津县| 扎兰屯市| 土默特右旗| 昌黎县| 天门市| 漾濞| 松潘县|