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

溫馨提示×

C++多態性怎樣處理不同對象

c++
小樊
82
2024-11-09 02:18:29
欄目: 編程語言

C++的多態性允許我們通過基類指針或引用來操作派生類對象。處理不同對象時,多態性主要通過虛函數(virtual function)實現。以下是一個簡單的示例,展示了如何使用多態性處理不同對象:

#include <iostream>

// 基類 Shape
class Shape {
public:
    // 虛函數 area()
    virtual double area() const {
        return 0.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_;
};

// 派生類 Rectangle,繼承自 Shape
class Rectangle : public Shape {
public:
    Rectangle(double width, double height) : width_(width), height_(height) {}

    // 重寫虛函數 area()
    double area() const override {
        return width_ * height_;
    }

private:
    double width_;
    double height_;
};

int main() {
    // 使用基類指針指向派生類對象
    Shape* shape1 = new Circle(5.0);
    Shape* shape2 = new Rectangle(4.0, 6.0);

    // 通過基類指針調用派生類對象的虛函數
    std::cout << "Circle area: " << shape1->area() << std::endl;
    std::cout << "Rectangle area: " << shape2->area() << std::endl;

    // 釋放內存
    delete shape1;
    delete shape2;

    return 0;
}

在這個示例中,我們定義了一個基類 Shape 和兩個派生類 CircleRectangle。基類中有一個虛函數 area(),派生類分別重寫了這個函數。在 main() 函數中,我們使用基類指針指向派生類對象,并通過基類指針調用派生類對象的虛函數。這就是C++多態性的基本用法。

0
山丹县| 拜泉县| 稻城县| 樟树市| 县级市| 新巴尔虎右旗| 启东市| 聂拉木县| 石泉县| 沈丘县| 茶陵县| 长丰县| 舟曲县| 临朐县| 连云港市| 芒康县| 鸡西市| 扎囊县| 农安县| 池州市| 济宁市| 吉木乃县| 黑河市| 无棣县| 郴州市| 洞口县| 新田县| 刚察县| 奇台县| 定结县| 雷山县| 思茅市| 阳西县| 介休市| 花莲市| 双桥区| 克什克腾旗| 和林格尔县| 长武县| 榆树市| 定安县|