通用工具auto ptr 模板智慧型指標

2021-06-21 09:43:20 字數 1406 閱讀 7233

//#include "stdafx.h"

#includeusing namespace std;

namespace gq

};typedef t element_type;

explicit auto_ptr(t*ptr = null)throw() //遮蔽掉隱式構造

// auto_ptrobj = new int(10);//error auto_ptrobj(new int(10))//right

auto_ptr(auto_ptr&)throw();

templateauto_ptr(auto_ptr&ptr)throw() //將派生類物件傳給基類時呼叫

//overrides

auto_ptr& operator=(auto_ptr &ptr)throw() //賦值轉換

templateauto_ptr& operator =(auto_ptr& ptr)throw() //將派生類物件傳給基類時呼叫

t* get()const throw()

t& operator*()const throw()

t* operator->()const throw() //使用初始化t型別中操作函式或資料成員

//destruction

~auto_ptr() throw()

//member functions

//release ownership

t* release()throw();

// reset value

void reset(t* ptr = null)throw()

public:

auto_ptr(auto_ptr_refyp)throw() //auto_ptr_ref相當於傳入乙個該型別實參

auto_ptr& operator=(auto_ptr_refrhs)throw()

templateoperator auto_ptr_ref() throw() //將auto_ptr convert to auto_ptr_ref

templateoperator auto_ptr()throw() //auto_ptr convert to auto_ptr

private:

t *ap;

}; //拷貝構造

templateauto_ptr::auto_ptr(auto_ptr &ptr)throw()

//轉移智慧型指標許可權

templatet* auto_ptr::release()throw() };

class ca

*/ void fun()

4 通用工具

std make pair 42,a 可代替std pair 42,a std auto ptrptr1 new classa ok std auto ptrptr2 new classa error,不允許賦值初始化 std auto ptrptr3 ptr1 ok,同時擁有權轉移 1 設計動機 ...

Vue 通用工具 彈窗

最近在寫vue的專案,有一些元件是通用的,就單獨拎出來寫了。彈窗元件 檔案層級 1 tools 1.1 popup.vue 1.2 inded.js popup.vue test v if show class flag fade in fade out class class div div te...

auto ptr模板類 智慧型指標

auto ptr模板類 auto ptr模板定義了類似指標的物件,可以將new獲得 直接或間接 的位址賦給這種物件。當auto ptr物件過期時,其析構函式將使用delete來釋放記憶體。要建立auto ptr物件,必須包含標頭檔案memory。使用通常的模板句法來例項化所需型別的指標。模板中包括 ...