抽象基類和純虛擬函式

老司機的詩和遠方發表於2020-04-06

在設計時,常常希望基類僅僅作為其派生類的一個介面。這就是說,僅想對基類進行向上型別轉換,使用它的介面,而不希望使用者實際地建立一個基類的物件。要做到這點,可以在基類中加入至少一個純虛擬函式,來使基類成為抽象類。純虛擬函式使用關鍵字virtual,並且在其後面加上=0。如果某人試著生成一個抽象類的物件,編譯器會制止他,這個工具允許生成特定的設計。
當繼承一個抽象類時,必須實現所有的純虛擬函式,否則繼承出的類也將是一個抽象類。建立一個純虛擬函式允許在介面中放置成員函式,而不一定要提供一段可能對這個函式毫無意義的程式碼。同時,純虛擬函式要求出的類對它提供一個定義。純虛擬函式總是變成“啞”函式。
建立公共介面,也就是純虛擬函式抽象類。它能對於每個不同的子類有不同的表示,它建立一個基本的格式。

相關文章