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

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

分享到微博請遵守國家法律
玉龙| 漳浦县| 乐山市| 沁源县| 三原县| 民乐县| 林口县| 施秉县| 剑阁县| 平和县| 广元市| 资阳市| 盐亭县| 皮山县| 隆回县| 安平县| 汕头市| 孟村| 邓州市| 西城区| 郓城县| 日喀则市| 溧阳市| 彭州市| 平泉县| 株洲市| 甘泉县| 中阳县| 新安县| 小金县| 和田县| 广南县| 焉耆| 兰州市| 肇东市| 阳原县| 梅河口市| 永城市| 南乐县| 资兴市| 南澳县|