C 程式設計規範101讀書筆記(5)類的設計與繼承

2021-06-20 22:00:23 字數 667 閱讀 9040

這部分主要討論物件導向的設計的一些陷阱:主要涉及建構函式,析構函式,繼承,組合,成員可見度

第32條  弄清所要編寫的是哪種類

第33條 用小類代替巨類

第34條 用組合代替繼承

在不影響呼叫**的情況下具有更大的靈活性

更好的編譯時隔離,更短的編譯時間

例外情況:

(1)如果需要改寫虛函式

(2)如果需要訪問保護成員

(3)如果需要在基類之前構建已使用過的物件,或者在基類之後銷毀此物件

(4)如果需要操心虛擬基類

(5)如果能確定空基類優化哪呢給帶來好處,包括這種情況下優化的確很重要,以及這種情況下目標編譯器確實能實施這種優化

(6)如果需要控制多型

第35條 避免從非要設計成基類的類上繼承

策略:(1)用組合代替共用整合或者私有繼承

(2)std::unary_fucntion

第36條  優先提供抽象介面

遵循依賴倒置原理

第37條 共用繼承即可替換性,繼承,不是為了重用,而是為了被重用

liskov替換原則

例外情況: 策略類和混入類(mixins)通過共用繼承新增行為,但這並不是誤用共用繼承來建模

第38條 實施安全的改寫

第39條 考慮將虛函式宣告為非公用的,將共用函式宣告為虛擬的

C 程式設計規範101讀書筆記(2)設計風格

這部分主要涉及設計的風格的事宜 基本觀點還是那句話,高內聚,低耦合,擴充套件性強,簡單 第5條 乙個實體應該只用乙個緊湊的職責 一次只解決乙個問題。乙個實體只負責一件事。乙個實體職責過多,導致實體多重性格,難控制 典型反例 realloc 函式 c basic string 類 第6條 正確,簡單和...

C程式語言讀書筆記 5

double dp,atof char 表明,dp 和atof char 的值都是 double 型別的。該宣告中 atof 的引數是指向 char 型別的指標,指標必須指向特性型別的物件,但是 void 型別的指標可以存放指向任何型別的指標。陣列和指標的關係 陣列名所代表的指標就是該陣列最開始的乙...

C 程式設計規範101讀書筆記(1)組織和策略問題

這部分主要涉及 質量控制 第0條 不要拘泥小節 風格一致 1 縮排體現 結構 2 行長度不要影響閱讀 3 使用一致的命名規範 4 編寫有用的注釋 第1條 在高告警級別乾淨利落地編譯 1 第三方標頭檔案 pragma warning push pragma warning disable 4516 p...