在C++中,virtual關鍵字用于聲明一個虛函數。虛函數是指在基類中聲明的函數,可以在派生類中重新定義,且在使用基類指針或引用調用該函數時,會根據對象的實際類型來確定調用的是基類中的虛函數還是派生類中的重新定義的函數。
使用方法如下:
class Base {
public:
virtual void foo() {
// 基類中的虛函數定義
}
};
class Derived : public Base {
public:
void foo() override {
// 派生類中的重新定義的函數
}
};
在C++11之后,可以使用override
關鍵字來顯式地標記派生類中的虛函數,以增強代碼的可讀性和可維護性。
Base* ptr = new Derived();
ptr->foo(); // 調用派生類中重新定義的虛函數
在上述示例中,基類指針ptr
指向派生類對象,調用ptr->foo()
會根據對象的實際類型來確定調用的是基類中的虛函數還是派生類中的重新定義的函數。