Effective cpp 讀書筆記9

2021-07-11 22:49:06 字數 481 閱讀 8604

當我們編寫乙個class template,而它所提供的「與此template相關的」函式支援「所有引數之隱式型別轉換時」,請將那些函式定義為「class template內部的friend函式」

個人理解:template實參推導過程中,從來不將隱式型別轉換函式納入考慮。這樣的轉換咋函式呼叫過程中確實被用到,但在能夠呼叫乙個函式之前,首先必須知道那個函式存在。如果需要乙個所有引數都支援隱式轉換的

traits classes使得「型別相關資訊」在編譯期可用。它們以templates和「templates特化」完成實現

整合過載技術(overloading)後,traits classes有可能在編譯期對型別執行if…else測試

template metaprogramming(tmp,模板元程式設計)可將工作由執行期移到編譯期,因而得以實現早期錯誤偵測和更高的執行效率

tmp可被用來生成「基於政策選擇組合」的客戶定製**,也可用來避免生成對某些特殊型別並不適合的**

Effective cpp 讀書筆記1

本週內,每天更新。c 的特性主要 四個大方面 四個次語言 結論 壞處用const取代 用enum取代 用inline取代 結論 注意 const成員函式 bitwise constness 編譯器就是這種 和logical constness 在const和non const成員函式中避免重複 結論...

Effective cpp 讀書筆記2

c 默默編寫的函式 程式設計師沒有宣告的前提下 default建構函式 copy建構函式 copy assignment操作符 default析構函式 非virtual 編譯器產出的函式都是public的 關於建構函式,如果使用者定義了至少一種,就不會有預設建構函式 結論 自行宣告和定義 將對應的函...

Effective cpp 讀書筆記5

切記將成員變數宣告為private。這可賦予客戶訪問資料的一致性 可細微劃分訪問控制 允諾約束條件或的保證,並提供class作者以充分的實現彈性 protected並不比public更具封裝性 這樣做可以增加封裝性 包裹彈性和技能擴充性 目的是為了保證函式一致性。典型例子是過載類的運算子operat...