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

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

分享到微博請遵守國家法律
宜春市| 铁力市| 赣州市| 寿光市| 靖江市| 承德县| 紫阳县| 阳朔县| 南昌县| 崇礼县| 长垣县| 右玉县| 陆良县| 桂林市| 南木林县| 治多县| 丰都县| 乌兰浩特市| 临海市| 淳化县| 佳木斯市| 从江县| 秦皇岛市| 津市市| 巨鹿县| 遂川县| 临邑县| 镇巴县| 建宁县| 大姚县| 乌拉特后旗| 大足县| 昭苏县| 梅河口市| 常德市| 双流县| 志丹县| 台湾省| 满洲里市| 岳西县| 原阳县|