研究android的時候,經常會遇到sp、wp的東西,網上一搜,原來是android封裝了c++中物件**機制。
說明:1. 如果乙個類想使用智慧型指標,那麼必須滿足下面兩個條件:
a. 該類是虛基類refbase的子類或間接子類
b. 該類必須定義虛建構函式。如virtual ~myclass();
android 中封裝了sp<> 強指標,wp<>弱指標的操作。
1 . 強指標與一般意義的智慧型指標概念相同,通過引用計數來記錄有多少使用者在使用乙個物件,
如果所有使用者都放棄了對該物件的引用,則該物件將被自動銷毀。
2 . 弱指標也指向乙個物件,但是弱指標僅僅記錄該物件的位址,不能通過弱指標來訪問該物件,
也就是說不能通過弱指標來呼叫物件的成員函式或訪問物件的成員變數。
android中的智慧型指標
本文參考了 深入理解android卷i 第五章,感謝作者 智慧型指標主要用來解決多個指標指向同一物件時,乙個指標被銷毀時刪除了物件導致的指標懸掛問題.智慧型指標的實現原理 使用引用計數來管理指向對像的拷貝,智慧型指標將乙個計數器和指向的對像關聯起來,在建立智慧型指標時將計數器初始化為1 使用指向的對...
android智慧型指標的原理
看android的c 的 到處都是智慧型指標 一直看不懂類似的 spmakecrypto sm是個sp物件,它怎麼有成員函式getservice?仔細研究sp的 template class sp inline t operator const inline t get const private ...
智慧型指標 強弱智慧型指標
在平時編寫 的時候經常會用到new來開闢空間,而我們開闢出來的空間必須得手動去delete他,但是如果程式設計師忘記去手動釋放那邊會出現乙個麻煩的問題,記憶體洩漏!或者是一塊記憶體被多個函式同時使用時,如果其中乙個函式不知道還有其他人也在使用這塊記憶體而釋放掉的話同樣也會引起程式的崩潰。引起記憶體洩...