中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
离岛区| 北川| 荔浦县| 武强县| 五河县| 防城港市| 龙州县| 中牟县| 布拖县| 保靖县| 洞头县| 锡林郭勒盟| 高陵县| 策勒县| 茌平县| 寿阳县| 肥乡县| 边坝县| 通河县| 和硕县| 武乡县| 南溪县| 彩票| 永州市| 潮安县| 鲜城| 壶关县| 淳安县| 长沙县| 麟游县| 上蔡县| 砚山县| 罗田县| 泗水县| 大悟县| 海安县| 突泉县| 白河县| 谷城县| 新疆| 永川市|