qt中的智慧型指標
-qpointer
.當其指向的物件被銷毀時,它會被自動置空
.析構時不會自動銷毀所指向的物件
-qsharedpointer
.引用計數型智慧型指標
.可以被自由的拷貝和賦值
.當引用計數為0時才刪除指向的物件
#include #include using namespace std;class test : public qobject //在進行qt開發時,所定義的類都必須繼承自qt中的頂層父類qobject,這樣才符合qt開發中的一些規範。
析構函式沒有被呼叫,意味著pt這個智慧型指標物件,它在生命週期結束時並沒有同時的銷毀所指向的堆空間裡面的物件。一定要注意。此時需要手工的刪除。
delete pt;
#include #include using namespace std;class test : public qobject //在進行qt開發時,所定義的類都必須繼承自qt中的頂層父類qobject,這樣才符合qt開發中的一些規範。
列印結果說明:
意味著qpointer類模板的物件所指向的堆空間,如果被釋放了,那麼所有指向這個堆空間的智慧型指標都會被置空。這是乙個非常有用的特性,可以避免記憶體多次釋放的問題。
qsharepointer的使用
#include #include using namespace std;class test : public qobject //在進行qt開發時,所定義的類都必須繼承自qt中的頂層父類qobject,這樣才符合qt開發中的一些規範。
智慧型指標類模板(中) Qt中的智慧型指標
qt中的智慧型指標 qpointer 當其指向的物件被銷毀時,它會被自動置空 析構時不會自動銷毀所指向的物件 qsharedpointer 引用計數型智慧型指標 可以被自由的拷貝和賦值 當引用計數為0時才刪除指向的物件 include include using namespace std clas...
智慧型指標類模板(上) STL中的智慧型指標
智慧型指標類模板 智慧型指標本質上就是乙個物件,它可以像原生指標那樣來使用。智慧型指標的意義 現代c 開發庫中最重要的類模板之一 c 中自動記憶體管理的主要手段 能夠在很大程度上避開記憶體相關的問題 1.記憶體洩露,在測試階段很難發現。造成的原因就是申請堆空間中的記憶體,忘記釋放。2.多次指標釋放 ...
Qt智慧型指標
很簡單的入門程式,應該比較熟悉吧 在 從 qt 的 delete 說開來 一文中,我們提到這個程式存在記憶體洩露 表現就是析構函式不被呼叫 而且當時給出了三種解決方法 注 本文中,我們從智慧型指標 smart pointer 角度繼續考慮這個問題 為了管理記憶體等資源,c 程式設計師通常採用raii...