雖然人們通常認為純虛函數缺乏實現,但某些場景允許在基類中定義它們。
在您提供的程式碼片段中:
class A { public: virtual void f() = 0; }; void A::f() { cout << "Test" << endl; }
函數A::f() 被宣告為純虛函數並帶有實作。這是 C 語言允許的,儘管它會引發對其用途的疑問。
帶有實現的純虛函數服務於特定目的。透過在基底類別中提供預設實現,衍生類別可以:
這是一個範例:
class B : public A { virtual void f() { A::f(); // Calls the base class implementation } };
在實作中使用純虛函數並不常見,但在場景中可能是有益的其中:
雖然 C 語言允許在基類中提供純虛函數的實現,這不是一種常見的做法。了解此技術的目的和意義可以讓您在適當的時候使用它。
以上是何時以及為什麼要在 C 中實現純虛函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!