溫馨提示×

C++多態(tài)性怎樣實現(xiàn)類型隱藏

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

在 C++ 中,多態(tài)性是通過虛函數(shù)實現(xiàn)的。要實現(xiàn)類型隱藏,可以使用基類指針或引用來指向派生類對象。這里有一個簡單的例子來說明如何實現(xiàn)類型隱藏:

#include <iostream>

// 基類 Shape
class Shape {
public:
    // 虛函數(shù) area()
    virtual double area() const {
        return 0.0;
    }
};

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

    // 重寫基類的虛函數(shù) area()
    double area() const override {
        return 3.14159 * radius_ * radius_;
    }

private:
    double radius_;
};

int main() {
    // 使用基類指針指向派生類對象
    Shape* shape = new Circle(5.0);

    // 調(diào)用虛函數(shù) area(),實現(xiàn)多態(tài)性
    std::cout << "Area: " << shape->area() << std::endl;

    delete shape; // 釋放內(nèi)存
    return 0;
}

在這個例子中,我們定義了一個基類 Shape 和一個派生類 Circle。Circle 類繼承自 Shape 類,并重寫了基類的虛函數(shù) area()。在 main() 函數(shù)中,我們使用基類指針 shape 指向派生類對象 Circle。當(dāng)我們調(diào)用 shape->area() 時,C++ 會根據(jù)對象的實際類型(這里是 Circle)來調(diào)用相應(yīng)的 area() 函數(shù),實現(xiàn)了多態(tài)性。同時,由于基類指針指向派生類對象,實現(xiàn)了類型隱藏。

0