如果基底類別中定義了一個函式,當您繼承了基底類別之後,您可以「重新定義」(Override)這個函式,以讓它適用於衍生類別,例如: #include <iostream> 執行結果:
如上面這個簡單的程式所表示的,當同一個成員函式在衍生類別中被重新定義,使用此衍生類別所生成的物件來呼叫該函式,所執行的會是衍生類別中所定義的函 式,而基底類別中的同名函式並不受影響。 如果在重新定義某個函式,打算先執行父類別中該函式的內容,則可以使用this關鍵字結合::運算子,指定父類別中該函式來執行,例如: class Foo2 : public Foo1 {
public: void show() { this->Foo1::show(); cout << "Foo2's show()" << endl; } }; 上面的程式中,show()被重新定義了,它會先執行父類別Foo1的show()函式,並接著執行顯示"Foo2's show()"。 |