C 之智慧型指標類模板

2021-10-24 12:46:00 字數 1345 閱讀 3908

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...