純虛函數(shù)是具體派生類必須重載的虛函數(shù)。如果一個(gè)類有一個(gè)沒有重載的純虛函數(shù),那么它是一個(gè)抽象類,不能創(chuàng)建該類型的對(duì)象。
定義純虛函數(shù)體的原因有以下死點(diǎn):
- 純虛析構(gòu)函數(shù)。通常情況下,析構(gòu)函數(shù)要么是虛函數(shù)并且為公有,要么是非虛函數(shù)并且為 protected。如果沒有提供函數(shù)定義,則不能實(shí)例化該基類的派生類。
- 強(qiáng)迫程序員認(rèn)識(shí)到正在使用缺省行為。對(duì)于普通虛函數(shù),如果派生類沒有重載則默認(rèn)使用基類的缺省行為。如果不想隱含地使用基類的行為,可以使基類的虛函數(shù)為純虛函數(shù),則派生類必須顯式地使用基類的行為。
- 提供部分行為。
- 幫助編譯器診斷錯(cuò)誤。如果不小心調(diào)用了一個(gè)純虛函數(shù)(通常是對(duì)構(gòu)造函數(shù)或析構(gòu)函數(shù)間接調(diào)用),編譯器可能查不到問題所在,這是可以在純虛構(gòu)函數(shù)里面寫一些使程序崩潰的代碼,從而方便進(jìn)行查錯(cuò)。
文章來源:
http://my.donews.com/robinchow/2007/02/05/rhawrggrcrbpbeslbvcspydjubkcgkwxswuj/