effective C 條款二十三解讀

2021-08-07 05:28:47 字數 701 閱讀 4455

寧以non-member non-friend替換member函式

首先我們指出這種做法的好處,然後再通過**來進行展示:

1.增加**的封裝性

2.提高**的擴充套件性

3.降低**的編譯依存性。

解釋上面好處的**:

class webbrower

//不是成員函式的做法

void clearbrower(webbrower & wb)

這裡先說封裝性的問題,新提供的clearbrower函式由於是非成員函式 所以說封裝性肯定是由於clearevething的。

利用非成員函式,以及namespace我們可以降低**的編譯依存性。

如下面的**:

namespace webbrowerstuff

//放置所有使用者都基本會使用的non-member函式

}//標頭檔案 webbrowerbookmarks.h,定義與書籤有關的便利函式

namespace webbrowerstuff

//標頭檔案webbrowercookies.h定義與cookies相關的便利函式

namespace webbrowerstuff

利用這種機制,使用者可以根據自己的需要,引入相關的標頭檔案,以此也降低了**的依存性。

隨筆 二十三

1.gradle 完a整指南 android 2.android gradle 外掛程式 3.0 挖坑日記 3.android效能優化全方面解析 4.android studio 3.2新功能特性 5.重新認識 androidstudio 和 gradle,這些都是你應該知道的 6。美團外賣andr...

演算法(二十三)

1 給定乙個整數陣列nums,找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。public int maxsubarray int nums return maxsum 複雜度分析 public int maxsubarray int nums return maxsum 2 ...

二十三 管道

在go語言中可以通過chan來定義管道,可以通過操作符 和 對管道進行讀取和寫入操作 通過管道維護例程狀態 使用make函式初始化,make chan type make chan type,len 不帶len引數的用於建立無快取區的管道,使用len建立指定緩衝區長度的管道 讀寫管道 可通過操作符 ...