《Effective C艹》讀書筆記(16)

2021-09-02 12:30:42 字數 368 閱讀 7910

條款23:寧以non-member、non-friend替換member函式

一般我們相當然以為類中的成員函式更具封裝性,而實際上並不是那麼一回事,因為成員函式不僅可以訪問private成員變數,也可以取用private函式、enums、typedefs等等。而非成員非友元函式能實現更大的封裝性,因為它只能訪問public函式。

將所有便利函式放在多個標頭檔案內但隸屬同乙個命名空間,意味客戶可以輕鬆擴充套件這一組便利函式。需要做的就是新增更多non-member non-friend函式到此命名空間內。

請記住:

寧可拿non-member non-friend函式替代member函式。這樣做可以增加封裝性、包裹彈性和機能擴充性。

《Effective C艹》讀書筆記(1)

條款01 把c 當作乙個語言聯邦 c 不是簡單的 新增了物件導向特性的c語言 我們可以認為c 是由以下四個次語言組成的語言。2,物件導向c 這一部分包含了 封裝,繼承,多型,等等物件導向程式設計語言最直觀的特徵。3,template c 泛型程式設計。4,stl 是乙個template程式庫。包含有...

《Effective C艹》讀書筆記(12)

條款十八 讓介面容易被正確使用,不易被誤用 如果我們設計乙個日期類,可能會寫成如下的模樣 class date 這個建構函式貌似沒有問題,但是她卻無法阻止使用者輸入錯誤的資料。比如使用者可能會把date 3,30,2015 寫成date 30,3,2015 所以說其實當你設計的程式需要假定使用者都能...

《Effective C艹》讀書筆記(14)

條款21 當必須返回物件時,別妄想返回其reference 並不是在任何情況下都可以通過傳引用的方式返回值。看下面這段 const rational operator const rational r1,const rational r2 事實上,任何對這個函式返回值的讀寫操作都將返回錯誤,因為返回...