溫馨提示×

c++ base類的虛函數如何使用

c++
小樊
90
2024-09-04 18:36:09
欄目: 編程語言

在C++中,基類(Base class)的虛函數(Virtual function)允許派生類(Derived class)重寫(Override)這些函數,從而實現多態性。多態是面向對象編程的一個重要特性,它允許我們通過基類指針或引用調用派生類的成員函數。

以下是使用C++基類虛函數的步驟:

  1. 在基類中聲明虛函數:
class Base {
public:
    virtual void foo() {
        cout << "Base::foo()"<< endl;
    }
};

注意virtual關鍵字,它表示foo()是一個虛函數。

  1. 在派生類中重寫虛函數:
class Derived : public Base {
public:
    void foo() override {
        cout << "Derived::foo()"<< endl;
    }
};

注意override關鍵字,它表示foo()重寫了基類的虛函數。

  1. 使用基類指針或引用調用派生類的成員函數:
int main() {
    Base* basePtr = new Derived();
    basePtr->foo(); // 輸出 "Derived::foo()"

    Base& baseRef = *basePtr;
    baseRef.foo(); // 輸出 "Derived::foo()"

    delete basePtr;
    return 0;
}

在這個例子中,我們創建了一個Derived類的對象,并將其地址賦給了Base類的指針basePtr。然后,我們通過basePtr調用foo()函數,實際上調用的是Derived類的foo()函數。這就是多態性的體現。

同樣,我們也可以使用基類引用baseRef來調用foo()函數,實現相同的效果。

注意:在使用基類指針或引用時,請確保正確地管理內存和生命周期,以避免內存泄漏和其他問題。在這個例子中,我們使用delete釋放了basePtr指向的內存。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女