虚函数与纯虚函数的区别
生活随笔
收集整理的這篇文章主要介紹了
虚函数与纯虚函数的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
虛函數:為了方便使用多態特性,常常需要在基類中定義虛函數。
純虛函數:
1、原因與虛函數相同;
2、在很多情況下,基類本身生成的對象是不合理的;
虛函數與純虛函數的區別:
1、類里聲明為虛函數的話,這個函數是實現的,哪怕是一個空實現,它的作用就是為了能讓這個函數在它的子類里面可以被重載,這樣的話,編譯器就可以在使用后期綁定來達到多態效果;純虛函數只是一個接口,是個函數的聲明而已,要留在子類里面去實現。
2、虛函數也可以在子類里面不重載;但純虛函數必須在子類里面去實現。通常我們把很多函數加上virtual,這是一個好的習慣,雖然犧牲了一些性能,但是增加了面向對象的多態性,因為很難預料到父類里面的這個函數不用在子類里面去修改它的實現。
?
?
?
3、虛函數的類用于“實作繼承”,繼承接口的同時也繼承了父類的實現。當然我們也可以完成自己的實現。純虛函數的類用于“介面繼承”,主要用于通信協議方面。關注的是接口的統一性,實現由子類完成。一般來講,介面類中只有純虛函數。
?
4、帶純虛函數的類叫虛基類,這種基類不能直接生成對象,而只有被繼承,并重寫其虛函數后,才能使用。這樣的類也叫抽象類。虛函數是為了繼承接口和默認行為;純虛函數只是繼承接口,行為必須重新定義。
?
轉載于:https://www.cnblogs.com/wenxp2006/archive/2012/05/27/2520446.html
總結
以上是生活随笔為你收集整理的虚函数与纯虚函数的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么做不苦的苦瓜?
- 下一篇: Lazy Load, 延迟加载图片的 j