本篇內(nèi)容主要講解“C++核怎么使用unique_ptr
成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元崇川做網(wǎng)站,已為上家服務(wù),為崇川各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
ES.24: 使用unique_ptr
Reason(原因)
使用std::unique_ptr是避免泄露的最簡(jiǎn)單方法。它可靠,它使類(lèi)型系統(tǒng)做更多的工作以便安全地驗(yàn)證所有權(quán),它可以增加可讀性,它的沒(méi)有(或接近沒(méi)有)運(yùn)行時(shí)代價(jià)。
Example(示例)
void use(bool leak){ auto p1 = make_unique(7); // OK int* p2 = new int{7}; // bad: might leak // ... no assignment to p2 ... if (leak) return; // ... no assignment to p2 ... vector v(7); v.at(7) = 0; // exception thrown // ...}
如果leak==true,p2指向的對(duì)象就會(huì)發(fā)生泄露,但p1指向的對(duì)象就不會(huì)。at()拋出異常時(shí)也一樣。
Enforcement(實(shí)施建議)
尋找new,malloc的結(jié)果直接賦值個(gè)原始指針,或者函數(shù)返回這樣的指針的情況。
到此,相信大家對(duì)“C++核怎么使用unique_ptr