template> class unique_ptr;
template class unique_ptr;
釋放物件的時機->:std::unique_ptr
是通過指標占有並管理另一物件, 並在unique_ptr
離開作用域時釋放該物件的智慧型指標。
銷毀了管理的unique_ptr物件
通過operator=或reset()賦值另一指標給管理的unique_ptr物件
也可以通過呼叫get_deleter()(ptr)刪除物件;
unique_ptr是可以轉義物件的管理權的,但是被const修飾之後就不能夠被轉移了
函式名字
作用operator=
賦值reset
替換被管理物件
swap
交換被管理物件
release
返回被管理物件的指標,並且釋放乙個物件所有權
get
返回被管理物件的指標
函式名字
作用make_unique
建立乙個管理物件的獨佔指標
std::swap(std::unique_ptr)
特化std::swap演算法
struct base
virtual ~base() = default;
std::string val;
};struct derived : base
~derived()
void bar() override
std::string val;
};int main()
std::cout << "\n多型執行時測試----->\n";
// 這裡將呼叫3次析構函式
}std::cout << "\n陣列形式的unique_str物件測試--->\n";
;// 這裡將呼叫4次析構函式
}return 0;
}
unique_ptr 指向物件的所有權的測試---->
derived::constructor
derived::bar()
unique_ptr
derived::descontructor
多型執行時測試----->
derived::constructor
derived::bar()
derived::constructor
derived::constructor
derived::bar()
derived::bar()
derived::bar()
derived::descontructor
derived::descontructor
derived::descontructor
陣列形式的unique_str物件測試--->
derived::constructor
derived::constructor
derived::constructor
derived::constructor
derived::descontructor
derived::descontructor
derived::descontructor
derived::descontructor
智慧型指標 unique ptr
unique ptr 是 c 11 提供的用於防止記憶體洩漏的智慧型指標中的一種實現,獨享被管理物件指標所有權的智慧型指標。int main std move是將物件的狀態或者所有權從乙個物件轉移到另乙個物件,只是轉移,沒有記憶體的搬遷或者記憶體拷貝所以可以提高利用效率,改善效能.get函式會返回儲...
c 智慧型指標 unique ptr
智慧型指標是基於raii機制實現的類 模板 具有指標的行為 過載了operator 與operator 操作符 可以 智慧型 地銷毀其所指物件。c 11中有unique ptr shared ptr與weak ptr等智慧型指標,可以對動態資源進行管理 unique ptr 唯一 擁有其所指物件,同...
C 智慧型指標 unique ptr
unique ptr 唯一 擁有其所指物件,同一時刻只能有乙個unique ptr指向給定物件 通過禁止拷貝語義 只有移動語義來實現 unique ptr指標本身的生命週期 從unique ptr指標建立時開始,直到離開作用域。離開作用域時,若其指向物件,則將其所指物件銷毀 預設使用delete操作...