//#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。使用通常的模板句法來例項化所需型別的指標。模板中包括 ...