国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

十六、C++14標(biāo)準(zhǔn)和智能指針

2023-04-04 20:51 作者:努力賺錢養(yǎng)朵朵  | 我要投稿


本章介紹C++14的新特性并介紹一下C++11之前之后的智能指針。其實(shí)C++14標(biāo)準(zhǔn)相比C++11標(biāo)準(zhǔn)就新增了一些自動推導(dǎo)的特性,比如lambda表達(dá)式參數(shù)類型推導(dǎo)、函數(shù)返回類型自動推導(dǎo);以及新增了lambda表達(dá)式的初始化捕獲。

lambda表達(dá)式參數(shù)類型推導(dǎo)

出現(xiàn)輸入較為麻煩的類型不需要再換名,直接寫成auto。例如:

函數(shù)返回類型推導(dǎo)

更改返回值類型時(shí),不再需要每次更改函數(shù)的返回類型。例如:

lambda表達(dá)式的初始化捕獲

相當(dāng)于間接傳值,避免直接傳值,并且該間接值不需要初始化。例如:

C++11之前的智能指針

C++11之前的智能指針是auto_ptr,一開始它的出現(xiàn)是為了解決指針沒有釋放導(dǎo)致的內(nèi)存泄漏。比如忘了釋放或者在釋放之前,程序throw出錯(cuò)誤,導(dǎo)致沒有釋放。所以auto_ptr在這個(gè)對象聲明周期結(jié)束之后,自動調(diào)用其析構(gòu)函數(shù)釋放掉內(nèi)存。

以上3句中,只有第3句是符合規(guī)范的。因?yàn)槠涫鞘褂胣ew定義的,會存在于堆中,而堆是允許進(jìn)行內(nèi)存操作的。而1、2句綁定在非堆的變量上,這樣在釋放時(shí)極容易出現(xiàn)錯(cuò)誤。所以千萬不要用一塊非new分配的動態(tài)內(nèi)存去初始化一個(gè)智能指針。也需要注意,auto_ptr不能夠作為函數(shù)的返回值和函數(shù)的參數(shù),也不能在容器中保存autp_ptr,導(dǎo)致使用不便。

C++11之后的智能指針

C++11之后智能指針分為了三種:shared_ptr、unique_ptr、weak_ptr。而weak_ptr相當(dāng)于shared_ptr的一個(gè)輔助指針, 所以正式的智能指針只有shared_ptr和unique_ptr。

具體用法和說明見https://blog.csdn.net/haolexiao/article/details/56773039?%3E。(我偷偷懶[]~( ̄▽ ̄)~*)

十六、C++14標(biāo)準(zhǔn)和智能指針的評論 (共 條)

分享到微博請遵守國家法律
思茅市| 井研县| 贞丰县| 大安市| 青浦区| 砀山县| 迭部县| 琼结县| 平顶山市| 漳州市| 珲春市| 娱乐| 东安县| 洞头县| 牙克石市| 鲁甸县| 南城县| 英超| 保德县| 漳浦县| 双峰县| 农安县| 察隅县| 漠河县| 陆良县| 四平市| 普陀区| 蒙山县| 三江| 庐江县| 汶川县| 司法| 洞头县| 句容市| 临澧县| 易门县| 柳河县| 长葛市| 桂东县| 鲁甸县| 辰溪县|