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

溫馨提示×

C++封裝性支持接口繼承嗎

c++
小樊
82
2024-11-09 00:17:27
欄目: 編程語言

C++ 支持接口繼承,但這種繼承方式與其他編程語言中的接口繼承有所不同。在 C++ 中,接口可以通過抽象類來實現。抽象類是一種特殊的類,它包含至少一個純虛函數。純虛函數是在基類中聲明的虛函數,它在基類中沒有定義,而是用= 0表示。派生類必須實現這些純虛函數,否則它們也將成為抽象類。

以下是一個簡單的 C++ 抽象類示例:

#include <iostream>

// 抽象類 Shape
class Shape {
public:
    // 虛析構函數,確保派生類的析構函數被正確調用
    virtual ~Shape() {}

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

// Circle 類繼承自 Shape
class Circle : public Shape {
public:
    Circle(double radius) : radius_(radius) {}

    // 實現 area 函數
    double area() const override {
        return 3.14159 * radius_ * radius_;
    }

private:
    double radius_;
};

// Square 類繼承自 Shape
class Square : public Shape {
public:
    Square(double side) : side_(side) {}

    // 實現 area 函數
    double area() const override {
        return side_ * side_;
    }

private:
    double side_;
};

int main() {
    // 由于 Shape 是抽象類,不能實例化對象
    // Shape shape; // 錯誤

    // 創建派生類對象
    Circle circle(5.0);
    Square square(4.0);

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

    return 0;
}

在這個示例中,Shape 是一個抽象類,包含一個純虛函數 area()CircleSquare 類繼承自 Shape 并實現了 area() 函數。這樣,我們可以通過 Shape 類型的指針或引用來調用派生類的 area() 函數,從而實現接口繼承。

0
砚山县| 林口县| 古浪县| 沁阳市| 贵定县| 溧阳市| 莫力| 郁南县| 尚义县| 清水河县| 乌什县| 石狮市| 望谟县| 兰坪| 灌云县| 仲巴县| 怀来县| 平阳县| 临夏市| 斗六市| 准格尔旗| 如东县| 台安县| 苍南县| 延吉市| 青川县| 深圳市| 汶上县| 株洲市| 铜陵市| 浦东新区| 成安县| 安岳县| 新野县| 东港市| 搜索| 江门市| 南通市| 凤冈县| 金山区| 鹿邑县|