1、現代c++開發庫中最重要的類模板之一
2、c++中自動記憶體管理的主要手段;
3、能夠在很大程度上避開記憶體相關的問題。
1、生命週期結束時,銷毀指向的記憶體空間;
2、不能指向堆陣列,只能指向堆物件(變數);
3、一片堆空間只屬於乙個智慧型指標物件;
4、多個智慧型指標物件不能指向同一片堆空間。
例項分析1
#include
#include
#include
//#include "array.h"
#include
using
namespace std;
class
test
void
print()
~test()
};intmain()
1、shared_ptr:帶有引用計數機制,支援多個指標物件指向同一片記憶體;
2、werk_ptr:配合shared_ptr而引入的一種智慧型指標;
3、unique_ptr:乙個指標物件指向一片記憶體空間,不能拷貝和賦值。
1、qpointer
1)、當其指向的物件被銷毀時,他會被自動置空;
2)、析構時不會自動銷毀所指的物件。
2、qsharedpointer
1)、引用計數型智慧型指標;
2)、可以被自由的拷貝和賦值;
3)、當引用計數為0時才刪除指向的物件。
例項分析2
#ifndef smartpointer_h
#define smartpointer_h
template
<
typename t>
class
smartpointer
smartpointer
(const smartpointer
& obj)
smartpointer&
operator=(
const smartpointer
& obj)
return
*this;}
t*operator
->()
t&operator*(
)bool
isnull()
t*get()
~smartpointer()
}#endif
1、智慧型指標c++中的自動記憶體管理的主要手段;
2、智慧型指標在各個平台上都有不同的表現形式;
3、智慧型指標能夠盡可能的避免記憶體相關的問題;
4、stl和qt中都有提供了對智慧型指標的支援。
C 智慧型指標模板類
三個智慧型指標模板 auto ptr unique ptr shared ptr 條件 1 標頭檔案必須包含memory,include 2 智慧型指標模板位於命名空間std,std 或using namespace std 三者的區別 1 所有權。只能有乙個智慧型指標可以擁有乙個特定的物件。aut...
auto ptr模板類 智慧型指標
auto ptr模板類 auto ptr模板定義了類似指標的物件,可以將new獲得 直接或間接 的位址賦給這種物件。當auto ptr物件過期時,其析構函式將使用delete來釋放記憶體。要建立auto ptr物件,必須包含標頭檔案memory。使用通常的模板句法來例項化所需型別的指標。模板中包括 ...
智慧型指標類模板(中) Qt中的智慧型指標
qt中的智慧型指標 qpointer 當其指向的物件被銷毀時,它會被自動置空 析構時不會自動銷毀所指向的物件 qsharedpointer 引用計數型智慧型指標 可以被自由的拷貝和賦值 當引用計數為0時才刪除指向的物件 include include using namespace std clas...