首頁 >後端開發 >C++ >C++ 中如何覆寫基底類別函式?

C++ 中如何覆寫基底類別函式?

王林
王林原創
2024-04-12 22:45:02485瀏覽

C 中,函數重寫允許衍生類別覆寫基底類別函數,以擴展或修改其行為。其語法為:具有相同函數名稱具有相同函數簽名使用override關鍵字

C++ 中如何覆盖基类函数?

#C 中函數重寫的全面指南

#在C 中,函數重寫允許衍生類別覆蓋基底類別中的函數。這在擴展基類功能或修改其行為時非常有用。

語法

要覆寫基底類別函數,衍生類別中的函數必須:

  • 與基底類別函數具有相同的名字
  • 具有相同的簽章(參數清單和傳回值)
  • 使用override 關鍵字

例如,考慮下列基底類別:

class Base {
public:
    virtual void print() { std::cout << "Base class" << std::endl; }
};

要覆寫print() 函數,衍生類別可以使用下列語法:

class Derived : public Base {
public:
    override void print() { std::cout << "Derived class" << std::endl; }
};

實戰案例

考慮一個Shape 基底類別和一個Circle 衍生類別:

class Shape {
public:
    virtual double area() { return 0; }
};

class Circle : public Shape {
public:
    double radius;

    override double area() {
        return 3.14 * radius * radius;
    }
};

main() 函數中,我們可以使用虛方法調度呼叫這兩個方法:

int main() {
    // 创建一个圆形对象
    Circle circle;
    circle.radius = 5;

    // 通过基类指针调用派生类函数
    Shape* shape = &circle;
    double area = shape->area();

    std::cout << "Area of the circle: " << area << std::endl;

    return 0;
}

輸出:

Area of the circle: 78.5

以上是C++ 中如何覆寫基底類別函式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn