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

溫馨提示×

c++實現抽象類方法

c++
小樊
81
2024-11-24 19:24:05
欄目: 編程語言

在C++中,抽象類是一種不能被實例化的類,它通常包含一個或多個純虛函數

#include <iostream>

// 定義一個抽象類 Shape
class Shape {
public:
    // 構造函數
    Shape() {
        std::cout << "Shape 構造函數被調用" << std::endl;
    }

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

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

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

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

    // 析構函數
    ~Circle() {
        std::cout << "Circle 析構函數被調用" << 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() << std::endl;
    std::cout << "周長: " << circle.perimeter() << std::endl;

    return 0;
}

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

0
永德县| 新源县| 红河县| 吉隆县| 琼海市| 宣武区| 丰县| 徐水县| 彰化县| 蒙城县| 澄城县| 娄底市| 大化| 同江市| 墨竹工卡县| 青铜峡市| 延安市| 梁平县| 红桥区| 雷州市| 清河县| 桐乡市| 祁东县| 波密县| 普安县| 二连浩特市| 武功县| 永胜县| 玉龙| 彝良县| 伊川县| 苏州市| 河津市| 木里| 方城县| 喀喇沁旗| 桃园县| 乳山市| 巍山| 磐石市| 广州市|