最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)和智能指針的評論 (共 條)

分享到微博請遵守國家法律
巴里| 理塘县| 金堂县| 上高县| 大荔县| 裕民县| 山丹县| 潼关县| 永德县| 昭苏县| 通辽市| 锡林浩特市| 措美县| 新和县| 林西县| 新疆| 洪雅县| 上高县| 瓮安县| 安丘市| 台南县| 泸西县| 萨迦县| 卓资县| 宿州市| 宕昌县| 芦溪县| 湄潭县| 拉萨市| 巴里| 连州市| 灵丘县| 临清市| 邓州市| 中方县| 门头沟区| 永修县| 定安县| 安西县| 东乡县| 泰兴市|