C++中純虛函數


1.純虛函數

virtual ReturnType Function()= 0;

純虛函數可以讓類先具有一個操作名稱,而沒有操作內容,讓派生類在繼承時再去具體地給出定義。凡是含有純虛函數的類叫做 抽象類。這種類不能聲明對象,只是作為基類為派生類服務。 除非在派生類中完全實現基類中所有的的純虛函數,否則,派生類也變成了抽象類,不能實例化對象。
一般而言純虛函數的函數體是缺省的,但是也可以給出純虛函數的函數體(此時純虛函數變為虛函數),這一點經常被人們忽視,調用純虛函數的方法為baseclass::virtual function.
 

2.純虛函數存在的意義

【答案1】四個字:制定標准
純虛函數是為你的程序制定一種標准,即只要你繼承了我,就必須按照我和標准來,實現我所有的方法,否則你也是虛擬的,和JAVA里的接口一樣,都是制定標准,為了使程序更加通用化,可重用性提高,讓所有實現它或繼承自它的子類全部按同一標准來工作,你想想大家都按標准來對程序的益處是什么?
【答案2】在很多情況下,基類本身生成對象是不合情理的。例如,動物作為一個基類可以派生出老虎、孔雀等子類,但動物本身生成對象明顯不合常理。
【答案3】父類中存在純虛函數,子類中重寫(override)該函數,可實現多態。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM