无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

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

分享到微博請遵守國家法律
无极县| 桃源县| 昌乐县| 英超| 八宿县| 平度市| 胶南市| 琼海市| 海口市| 宜兰县| 中超| 唐河县| 淅川县| 塔城市| 新巴尔虎左旗| 容城县| 大关县| 淄博市| 蛟河市| 民权县| 邹城市| 中宁县| 新泰市| 龙泉市| 武陟县| 江陵县| 新乐市| 阿鲁科尔沁旗| 灵宝市| 金坛市| 集安市| 青州市| 潮安县| 保定市| 泸溪县| 南康市| 金坛市| 志丹县| 上蔡县| 巴楚县| 秭归县|