您好,登錄后才能下訂單哦!
說點對這幾個容易混淆的詞的理解:
1、c++中的virtual方法的 virtual關鍵字主要是防止繼承中重復繼承父類的同一個方法而設置的標識。
2、virtual與abstract關鍵字的不同之處在于 virtual方法可以有具體的實現,當子類繼承父類的時候若沒有覆寫該方法,也可以使用父類中的此方法。
但是abstract方法即抽象方法是沒有具體實現的,子類需要自己實現。打個比方就是virtual 虛方法 這個 父親雖然“虛”了點但‘家產'還是有一點的,但老爸是抽象方法這個兒子就悲劇了,什么遺產也沒有,因為他老爸的方法是抽象的,并不是“真”的。。。
另:包含抽象方法的類一定是抽象類,抽象類不一定有抽象方法(但也不能實例化)。
額,另外還有一個純干抽象事兒的 接口。里面只有常量和抽象方法。
3、關于靜態方法和靜態變量
靜態方法是屬于類的,內存必須為它分配內存空間,這個空間一直由靜態方法占用,內存管理器不會由于靜態方法沒有被調用而將靜態方法的存儲空間收回,這樣如果將所有的方法都聲明為靜態方法,就會占用大量的內存空間,最后是系統變慢。而普通的成員方法是由對象調用的,內存并不會一直為起分配內存,只有調用的時候才為其分配存儲空間,而當其沒有被調用時,存儲空間就會被內存管理其收回,釋放沒有用的空間,提高的系統的運行速率!希望對樓主有幫助!
具體百度, 另: 靜態方法的典型用法就是單例模式。另外基于靜態方法的特點,我覺得那些需要被頻繁調用的方法適合定義成為靜態方法。此外,還有單例等特殊用途。
靜態變量:static定義的語句只會被執行一次。
以上這篇淺談virtual、abstract方法和靜態方法、靜態變量理解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。