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

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

Effective C++ 第十七條 Store newed objects in smart pointer in stand

2023-01-17 03:30 作者:九思519  | 我要投稿

以獨立語句將 newed 對象置入智能指針

????????在之前的學習中,我們知道智能指針的使用可以在構(gòu)造的時候使用 new .

????????但有的時候,我們也許不僅僅是只創(chuàng)建一個智能指針對象,還會同時使用其他語句

????????在 fun 執(zhí)行之前要申請資源 new int ,構(gòu)造 shared_ptr 還要調(diào)用 getNum ,這個順序又編譯器決定,有可能先執(zhí)行 getNum,也有可能先執(zhí)行new int 、shared_ptr 的構(gòu)建(new int 一定在 ?shared_ptr 構(gòu)造函數(shù)之前)??紤]到一種情況,順序如下

  1. 申請資源 new int

  2. 執(zhí)行 getNum

  3. 構(gòu)建 shared_ptr

????????第一步執(zhí)行成功,第二步出問題,導致程序異常退出,此時尚未構(gòu)建 shared_ptr,new int 申請的資源并沒有相應(yīng)的析構(gòu)函數(shù)來釋放,也就是會造成錯誤。也許編譯器不是按這個順序來的,但是我們要考慮到。所以保險的措施是將構(gòu)建 shared_ptr 和 執(zhí)行 getNum 單獨執(zhí)行。

這樣 shared_ptr 一定會先被構(gòu)建完成再調(diào)用 getNum,也就不會出現(xiàn)上述問題。


Effective C++ 第十七條 Store newed objects in smart pointer in stand的評論 (共 條)

分享到微博請遵守國家法律
玉门市| 南华县| 剑河县| 汝南县| 琼海市| 桂东县| 淮北市| 无为县| 甘南县| 镶黄旗| 武汉市| 蓬莱市| 运城市| 通山县| 上思县| 噶尔县| 玉田县| 柳江县| 滨州市| 德阳市| 当阳市| 三台县| 蓬溪县| 上饶县| 苗栗市| 苍山县| 读书| 定襄县| 卓资县| 广宗县| 乌苏市| 乐平市| 大荔县| 保定市| 三穗县| 合江县| 林州市| 炉霍县| 宽甸| 双辽市| 陇川县|