在C++中汰寓,可以將成員函數(shù)聲明為純虛函數(shù)砸狞,語法格式為:
virtual 函數(shù)返回類型 函數(shù)名 (函數(shù)參數(shù)) = 0;
純虛函數(shù)沒有函數(shù)體美侦,只有函數(shù)聲明拾并,在虛函數(shù)聲明結(jié)尾加上=0豺旬,表明此函數(shù)為純虛函數(shù)怕敬。
最后的=0并不表示函數(shù)返回值為0咖为,它只起形式上的作用秕狰,告訴編譯系統(tǒng)“這是純虛函數(shù)”。
包含純虛成員函數(shù)的類稱為抽象類(Abstract Class)躁染。之所以說它抽象鸣哀,是因為它無法實例化,也就是無法創(chuàng)建對象吞彤。原因很明顯我衬,純虛函數(shù)沒有函數(shù)體,不是完整的函數(shù)饰恕,無法調(diào)用挠羔,也無法為其分配內(nèi)存空間。
抽象基類除了約束派生類的功能埋嵌,還可以實現(xiàn)多態(tài)破加。
關(guān)于純虛函數(shù)的幾點說明:
1) 一個純虛成員函數(shù)就可以使類成為抽象基類,但是抽象基類中除了包含純虛成員函數(shù)外雹嗦,還可以包含其它的成員函數(shù)(虛函數(shù)或普通函數(shù))和成員變量范舀。
2)?只有類中的虛函數(shù)才能被聲明為純虛成員函數(shù)合是,普通成員函數(shù)和頂層函數(shù)均不能聲明為純虛函數(shù)。