發新話題

C++ Gossip - 物件導向《繼承》成員函式的重新定義

C++ Gossip - 物件導向《繼承》成員函式的重新定義

如果基底類別中定義了一個函式,當您繼承了基底類別之後,您可以「重新定義」(Override)這個函式,以讓它適用於衍生類別,例如:

#include <iostream>
using namespace std;

class Foo1 {
public:
    void show() {
        cout << "Foo1's show()" << endl;
    }
};


class Foo2 : public Foo1 {
public:
    void show() {
        cout << "Foo2's show()" << endl;
    }
};

int main() {
    Foo1 f1;
    Foo2 f2;

    f1.show();
    f2.show();
            
    return 0;
}
執行結果:
Foo1's show()
Foo2's show()

如上面這個簡單的程式所表示的,當同一個成員函式在衍生類別中被重新定義,使用此衍生類別所生成的物件來呼叫該函式,所執行的會是衍生類別中所定義的函式,而基底類別中的同名函式並不受影響。

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。