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

溫馨提示×

c++ class類純虛函數怎么寫

c++
小樊
83
2024-09-24 23:44:16
欄目: 編程語言

在 C++ 中,當一個類含有至少一個純虛函數時,這個類被稱為抽象類。純虛函數的聲明語法是在函數聲明的結尾處添加 “= 0”。以下是一個包含純虛函數的抽象類的示例:

#include <iostream>

// 聲明一個抽象類 Shape
class Shape {
public:
    // 構造函數
    Shape() {
        std::cout << "Shape constructor called." << std::endl;
    }

    // 虛析構函數
    virtual ~Shape() {
        std::cout << "Shape destructor called." << std::endl;
    }

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

    // 純虛函數 perimeter,計算周長
    virtual double perimeter() const = 0;
};

// 定義一個繼承自 Shape 的子類 Circle,表示圓形
class Circle : public Shape {
public:
    // 構造函數,接收半徑作為參數
    Circle(double radius) : radius_(radius) {
        std::cout << "Circle constructor called with radius: " << radius_ << std::endl;
    }

    // 析構函數
    ~Circle() {
        std::cout << "Circle destructor called." << std::endl;
    }

    // 實現純虛函數 area,計算圓形的面積
    double area() const override {
        return 3.14159 * radius_ * radius_;
    }

    // 實現純虛函數 perimeter,計算圓形的周長
    double perimeter() const override {
        return 2 * 3.14159 * radius_;
    }

private:
    // 成員變量,表示圓的半徑
    double radius_;
};

int main() {
    // 由于 Shape 是抽象類,不能創建它的實例
    // Shape shape; // 這行代碼會導致編譯錯誤

    // 創建一個 Circle 對象
    Circle circle(5.0);

    // 調用 area 和 perimeter 函數
    std::cout << "Circle area: " << circle.area() << std::endl;
    std::cout << "Circle perimeter: " << circle.perimeter() << std::endl;

    return 0;
}

在這個示例中,我們定義了一個抽象類 Shape,它包含兩個純虛函數 area()perimeter()。然后我們定義了一個繼承自 Shape 的子類 Circle,并實現了這兩個純虛函數。在 main() 函數中,我們創建了一個 Circle 對象,并調用了它的 area()perimeter() 函數。

0
嘉祥县| 丹棱县| 金寨县| 汉沽区| 尤溪县| 九江市| 巫山县| 乐安县| 上蔡县| 石狮市| 诸暨市| 淮安市| 阜南县| 伽师县| 佛学| 大连市| 隆德县| 新津县| 新闻| 新邵县| 古蔺县| 海兴县| 贡觉县| 永德县| 尉犁县| 西乌| 寿阳县| 长沙市| 天水市| 灵山县| 蒙阴县| 遵义市| 永寿县| 江华| 报价| 鄂尔多斯市| 柳州市| 施甸县| 巴青县| 吕梁市| 雅安市|