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

溫馨提示×

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
石泉县| 和硕县| 阳东县| 江阴市| 玉山县| 桂东县| 永修县| 比如县| 舒兰市| 宜宾县| 元氏县| 文登市| 城固县| 松桃| 宁都县| 思茅市| 兖州市| 石家庄市| 余庆县| 庄浪县| 蓝田县| 科尔| 静乐县| 游戏| 澎湖县| 康保县| 塘沽区| 大同市| 定西市| 大渡口区| 连平县| 惠安县| 多伦县| 留坝县| 兴山县| 南康市| 漾濞| 济宁市| 中宁县| 信宜市| 葵青区|