C++中的純虛函數(Pure Virtual Function)是一種特殊的虛函數,它允許我們在基類中聲明一個虛函數,但不提供具體的實現
= 0
來聲明一個純虛函數。例如:class Base {
public:
virtual void pureVirtualFunction() = 0; // 純虛函數
};
抽象類:包含至少一個純虛函數的類稱為抽象類。抽象類不能被實例化,只能作為基類被繼承。
多態:純虛函數是實現多態的一種方式。通過基類的指針或引用調用派生類的純虛函數,可以實現動態綁定。例如:
class Derived : public Base {
public:
void pureVirtualFunction() override {
// 實現具體功能
}
};
Base* basePtr = new Derived(); // 使用基類指針指向派生類對象
basePtr->pureVirtualFunction(); // 調用派生類的純虛函數,實現多態
接口:純虛函數可以被視為一種接口,它定義了一組類需要實現的功能。通過將一組具有相同功能的純虛函數放在一個抽象類中,可以確保所有派生類都實現了這些功能。
繼承:當一個類繼承自包含純虛函數的抽象類時,它必須實現所有的純虛函數,否則它也將成為抽象類。派生類可以通過override
關鍵字顯式地表示它們重寫了基類的純虛函數。
設計原則:純虛函數有助于實現開閉原則(對擴展開放,對修改關閉),因為它允許在不修改現有代碼的情況下添加新的派生類。這有助于提高代碼的可維護性和可擴展性。