純虛函數是 C 物件導向程式設計模型的重要組成部分。它們允許類別定義必須由衍生類別重寫的方法,從而有效地強制衍生類別提供這些方法的實作。
宣告純虛函數時,通常的做法是用 0 對其進行初始化。這有導致許多人相信此初始化是將函數的虛擬表條目設為 NULL 所必需的。然而,這種理解是不正確的。
純虛函數宣告末尾的 =0 並不是初始化。相反,它是一個語法指示符,表明該函數是純虛函數。這是語言設計過程中的限制的結果,正如 Bjarne Stroustrup 在他的書《C 的設計與演化》中所解釋的那樣。
實現純虛函數不一定涉及將虛表項設為無效的。事實上,Stroustrup 明確指出這種方式並不是實現純虛函數的最佳方式。
那麼,為什麼純虛函數會用 0 呢?答案在於語言設計而不是技術實現需求。
以上是為什麼在 C 中使用 `= 0` 來宣告純虛函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!