本篇文章介紹的是qt智慧型指標使用指南 幫助篇,qt提供了很多智慧型指標的類,比較常見的有qpointer, qshareddatapointer ,qsharedpointer,qweakpointer和qscopedpointer等等,它們被引入的qt版本即描述如下:
qpointer (4.0) 已經過時,可以被qweakpointer所替代,它不是執行緒安全的。
qshareddatapointer (4.0) -- 提供對資料的copy-on-write以及淺拷貝,提供對資料(而不是指向資料的指標)的執行緒安全的保護。(注:提供對資料的執行緒安全保護要結合qshareddata來完成),它是執行緒安全的。
qsharedpointer (4.5)-- 實現了引用計數的可共享資源的強型別指標,它是執行緒安全的。
qweakpointer (4.5)-- 實現了引用計數的可共享資源的弱型別指標,它是執行緒安全的。
qscopedpointer (4.6)-- 實現了非引用計數的獨享資源的強型別指標,它是執行緒安全的。
strong pointer :在有它所指向的資源的所有權期間,永遠不會放棄這個所有權。
weak pointer:在有它所指向的資源的所有權期間,允許外界釋放其資源從而使其放棄這個所有權。
qsharedpointer有著與std::auto_ptr類似的特性,而最大的區別在於它不能轉讓所有權而auto_ptr可以。事實上,scoped_ptr永遠不能被複製或被賦值!
下面**使用qsharedpointer,qweakpointer和qscopedpointer的示例:
int main(int argc, char *argv)}
Qt智慧型指標
很簡單的入門程式,應該比較熟悉吧 在 從 qt 的 delete 說開來 一文中,我們提到這個程式存在記憶體洩露 表現就是析構函式不被呼叫 而且當時給出了三種解決方法 注 本文中,我們從智慧型指標 smart pointer 角度繼續考慮這個問題 為了管理記憶體等資源,c 程式設計師通常採用raii...
Qt 中使用智慧型指標
教研室的專案,就是用qt做個圖形介面能收發資料就可以了,但是建立資料管理類的時候需要各種new,delete,很小心了但是記憶體使用量在不斷開關程式之後函式會長,由於用的是gcc 4.7.所以好像沒有shared ptr可以用,上網查了一下原來qt也有智慧型指標。常用的有 qscopedpointe...
Qt 智慧型指標學習
很簡單的入門程式,應該比較熟悉吧 從 qt 的 delete 說開來 一文中,我們提到這個程式存在記憶體洩露 表現就是析構函式不被呼叫 而且當時給出了三種解決方法 注 本文中,我們從智慧型指標 smart pointer 角度繼續考慮這個問題 為了管理記憶體等資源,c 程式設計師通常採用raii r...