2018-08-08函數
1.純虛函數spa
百度百科:純虛函數是一種特殊的虛函數,在許多狀況下,在基類中不能對虛函數給出有意義的實現,而把它聲明爲純虛函數,它的實現留給基類的派生類去作。指針
純虛函數格式:對象
class <類名> { virtual <類型><函數名>(<參數表>)=0; ... }
引入緣由:blog
1)爲了方便使用多態特性,經常須要在基類中定義虛函數開發
2)在不少狀況下,基類自己生成對象是不合情理的。例如:動物做爲一個基類能夠派生出老虎、孔雀等子類,但動物自己生成對象明顯不合常理。博客
2.虛函數編譯
百度百科:在某基類中聲明爲virtual並在一個或多個派生類中被從新定義的成員函數class
定義格式百度
virtual 返回類型 函數名(參數列表) {函數體}
指向基類的指針在操做它的多態類對象時,會根據不一樣的類對象,調用相應的函數,這個函數就是虛函數。
區別:
純虛函數是虛函數的一個子集,用於抽象類,含有純虛函數的類就是抽象類,它不能生成對象。
3.virtual在函數中的使用限制
1)普通函數不能是虛函數,也就是說這個函數必須是某一個類的成員函數,不能夠是一個全局函數,不然會致使編譯錯誤。
2)靜態成員函數不能是虛函數 static成員函數是和類同生共處,他不屬於任何對象,使用virtual也將致使錯誤。
3) 構造函數不能是虛函數,不然會出現編譯錯誤。