虛函數與純虛函數
在物件導向程式設計中,虛函數與純虛函數是理解多態性的基本概念。
什麼是虛擬函數?
虛函數是基底類別中允許動態分派的可繼承和可重寫的函數。當對物件呼叫虛擬函數時,運行時系統會根據物件的類型決定要執行的實際函數實現。
範例:
class Base { public: virtual void foo() { std::cout << "Base::foo()" << std::endl; } }; class Derived : public Base { public: void foo() override { std::cout << "Derived::foo()" << std::endl; } };
中在這個範例中,基底類別和衍生類別都實作了 foo() 函數。當對 Derived 物件呼叫 foo() 時,它會執行重寫版本,該版本列印「Derived::foo()。」
什麼是純虛函數?
純虛函數,也稱為抽象函數,是基底類別中未定義的虛函數。它充當佔位符,需要衍生類別來實現它。
範例:
class Base { public: virtual void foo() = 0; // pure virtual function };
此範例將 foo() 宣告為 Base 中的純虛函數班級。衍生類別必須實作此函數才能提供定義。如果不這樣做,衍生類別就會變成抽象類別,無法實例化。
虛函數和純虛函數的區別
以上是C 中的虛函數和純虛函數有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!