真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

關(guān)于c++智能指針及循環(huán)引用的問題-創(chuàng)新互聯(lián)

c++智能指針介紹

創(chuàng)新互聯(lián)建站是專業(yè)的安福網(wǎng)站建設(shè)公司,安福接單;提供網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行安福網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

由于 C++ 語言沒有自動內(nèi)存回收機(jī)制,程序員每次 new 出來的內(nèi)存都要手動 delete,比如流程太復(fù)雜,最終導(dǎo)致沒有 delete,異常導(dǎo)致程序過早退出,沒有執(zhí)行 delete 的情況并不罕見,并造成內(nèi)存泄露。如此c++引入 智能指針 ,智能指針即是C++ RAII的一種應(yīng)用,可用于動態(tài)資源管理,資源即對象的管理策略。 智能指針在 標(biāo)頭文件的 std 命名空間中定義。 它們對 RAII 或 獲取資源即初始化 編程慣用法至關(guān)重要。 RAII 的主要原則是為所有堆分配資源提供所有權(quán),例如動態(tài)分配內(nèi)存或系統(tǒng)對象句柄、析構(gòu)函數(shù)包含要?jiǎng)h除或釋放資源的代碼的堆棧分配對象,以及任何相關(guān)清理代碼。

c++智能指針類別

c++ 智能指針主要包括:unique_ptr,shared_ptr, weak_ptr, 這三種,其中auto_ptr 已被遺棄。

unique_ptr

只允許基礎(chǔ)指針的一個(gè)所有者。 可以移到新所有者(具有移動語義),但不會復(fù)制或共享(即我們無法得到指向同一個(gè)對象的兩個(gè)unique_ptr)。 替換已棄用的 auto_ptr。 相較于 boost::scoped_ptr。 unique_ptr 小巧高效;大小等同于一個(gè)指針,支持 rvalue 引用,從而可實(shí)現(xiàn)快速插入和對 STL 集合的檢索。 頭文件:

使用unique_ptr,可以實(shí)現(xiàn)以下功能:

1、為動態(tài)申請的內(nèi)存提供異常安全。
2、將動態(tài)申請內(nèi)存的所有權(quán)傳遞給某個(gè)函數(shù)。
3、從某個(gè)函數(shù)返回動態(tài)申請內(nèi)存的所有權(quán)。
4、在容器中保存指針。
5、所有auto_ptr應(yīng)該具有的(但無法在C++ 03中實(shí)現(xiàn)的)功能。

如下代碼所示:

class A;
// 如果程序執(zhí)行過程中拋出了異常,unique_ptr就會釋放它所指向的對象
// 傳統(tǒng)的new 則不行
unique_ptr fun1()
{
 unique_ptr p(new A);
 //do something
 return p;
}

void fun2()
{  // unique_ptr具有移動語義
 unique_ptr p = f();// 使用移動構(gòu)造函數(shù)
 // do something
}// 在函數(shù)退出的時(shí)候,p以及它所指向的對象都被刪除釋放 shared_ptr 

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


標(biāo)題名稱:關(guān)于c++智能指針及循環(huán)引用的問題-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://weahome.cn/article/cdheeh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部