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

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

Effective C++ 第十五條 Provide access to raw resource in resource-ma

2023-01-16 15:46 作者:九思519  | 我要投稿

在資源管理類中提供對原始資源的訪問

????????在前面說過,我們要用資源管理類來實現(xiàn)資源管理,主要是為了在程序結(jié)束的時候能夠釋放資源不會導(dǎo)致內(nèi)存泄漏。這意味著即使我們使用類封裝了原始資源,但還是需要在類中設(shè)計 API 給用戶調(diào)取原始資源,雖然用戶不一定要使用,但開發(fā)者應(yīng)當(dāng)提供。

像這樣就把資源 rhs 使用類 ptr 保護起來了,但是這還不夠,因為在很多時候,用戶需要調(diào)取資源 rhs,所以我們需要設(shè)計 API 給用戶使用??紤]到用戶需求,通常有以下幾個問題:

1.用戶使用的函數(shù)需要的參數(shù)以及返回值都是 T ,而封裝在 ptr 中的資源類型變成了 ptr,原來的函數(shù)用不了了,所以要設(shè)計類型轉(zhuǎn)換接口給用戶,讓用戶通過 ptr 類型獲得 T 類型的資源。 當(dāng)前有如下情況

現(xiàn)在該如何通過 callInt 來使用 ptr 封裝的 int* 作為參數(shù)呢?

顯式轉(zhuǎn)換

隱式轉(zhuǎn)換

隱式轉(zhuǎn)換看起來方便很多,但是也有其他問題,比如在客戶需要 ptr 類型的時候,拷貝 ptr 結(jié)果得出來的是 T 。這里可能注意,類的類型 和 operator T* () 的類型可以不一樣,比如類的類型是T,你可以在運算符重載那聲明為 operator double* () const,這樣不論創(chuàng)建 ptr 對象的時候給的是什么類型,都可以返回 double 型指針。

2.運算符重載 operator* 和 operator→

此時可以直接通過調(diào)用 ptr 來調(diào)用內(nèi)部原始資源。


Effective C++ 第十五條 Provide access to raw resource in resource-ma的評論 (共 條)

分享到微博請遵守國家法律
镇雄县| 唐河县| 岳阳市| 隆安县| 宝应县| 沁源县| 镇赉县| 突泉县| 上思县| 红安县| 岐山县| 金堂县| 营口市| 上虞市| 金湖县| 上蔡县| 五大连池市| 黄骅市| 都匀市| 中宁县| 寿宁县| 临朐县| 惠东县| 海伦市| 泌阳县| 宣威市| 永修县| 伊宁市| 资中县| 自治县| 辽中县| 鹤庆县| 星子县| 曲阳县| 灵川县| 偃师市| 元谋县| 随州市| 墨江| 隆昌县| 吐鲁番市|