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

溫馨提示×

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
巴塘县| 恩施市| 当阳市| 垦利县| 射阳县| 天长市| 辽宁省| 汤阴县| 宁波市| 界首市| 托克逊县| 罗甸县| 潮州市| 靖江市| 健康| 仙游县| 临潭县| 葫芦岛市| 西充县| 葵青区| 民县| 长宁县| 疏勒县| 怀安县| 麟游县| 都安| 溧阳市| 比如县| 灌云县| 巫山县| 伊宁市| 尼勒克县| 沙田区| 五常市| 灵璧县| 秀山| 育儿| 翁源县| 高邑县| 文山县| 锡林浩特市|