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

溫馨提示×

C++純虛函數怎樣使用

c++
小樊
82
2024-11-09 03:46:32
欄目: 編程語言

在C++中,純虛函數是一種特殊類型的虛函數,它在基類中沒有定義具體的實現,而是用= 0表示。派生類必須提供純虛函數的具體實現,否則它們也將成為抽象類,無法實例化。

以下是如何使用純虛函數的示例:

  1. 首先,定義一個包含純虛函數的抽象基類:
#include <iostream>

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

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

    // 純虛函數,計算面積
    virtual double area() const = 0;
};
  1. 然后,定義一個繼承自抽象基類 Shape 的派生類 Circle,并提供純虛函數的具體實現:
// 定義一個繼承自 Shape 的派生類 Circle
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_;
    }

private:
    double radius_;
};
  1. 最后,在主函數中,可以使用指向基類的指針或引用來操作派生類對象:
int main() {
    // 由于 Shape 是抽象類,不能實例化對象
    // Shape shape; // 錯誤

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

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

    // 釋放內存
    delete shape;

    return 0;
}

輸出結果:

Shape 構造函數被調用
Circle 構造函數被調用
圓的面積: 78.5398
Circle 析構函數被調用
Shape 析構函數被調用

0
汉寿县| 牙克石市| 东兴市| 年辖:市辖区| 三门峡市| 安溪县| 德安县| 枣强县| 德昌县| 寻乌县| 罗江县| 廊坊市| 成武县| 镇雄县| 西贡区| 鹿邑县| 汶上县| 平和县| 东源县| 东方市| 晴隆县| 嘉禾县| 平凉市| 聂荣县| 隆昌县| 武陟县| 集安市| 朔州市| 樟树市| 沛县| 呼和浩特市| 江陵县| 肃宁县| 宁陕县| 霍山县| 留坝县| 安化县| 台北市| 新巴尔虎左旗| 安国市| 昌邑市|