technorati 標籤:
c++,
大規模c++程式設計,
讀書筆記
原則115:對乙個完全封裝的介面來說,每個可程式設計訪問的值都是乙個邏輯值。
指導方針39:避免允許通過程式對物理值進行訪問。
封裝的目標是隱藏所有的物理狀態,同時使邏輯狀態可通過介面隨時得到。
原則116:提示是只寫(write-only)的。
原則117:最好的提示不直接被繫結到特定的實現。
最好的提示和抽象本身相關,而不與特定實現相關。
指導方針40:呼叫乙個const成員函式的結果不應該改變物件中的任何可程式設計訪問的值。
原則118:如果乙個支援值語義的型別有兩個例項,兩個例項各自所有的邏輯值都相等,那麼這兩個例項是相等的(==);只要有任何乙個單個的邏輯值不相等,這兩個例項就是不相等的(!=)。
原則119:將全域性運算子new和delete工具化,是在系統中理解和測試動態記憶體分配行為的簡單但有效的方法。
原則120:當工具化全域性的new和delete時,使用iostream會引起令人不快的***。
原則121:從不返還其記憶體的特定類分配方案,使得對記憶體洩露的自動檢測變得更加困難。
原則122:特定類的記憶體分配器傾向於占用全域性分配的記憶體,因此增加了整個記憶體的使用。
原則123:對特定類的記憶體管理方法不加選擇的使用,是一種以自我為中心的形式,它會對乙個整合系統的整體效能產生負面影響。
原則124:乙個特定物件(object-specific)的記憶體分配方案有足夠的上下文可以知道什麼時候不再需要一些例項的子集而可以釋放它們(這些例項子集是分配給特定物件並由它來管理的)。
指導方針41:特定物件的記憶體管理比特定類的記憶體管理要好。
指導方針42:使用乙個非const指標資料成員來儲存被管理的物件。
次要設計規則9:避免依賴乙個物件在初始化過程中定義資料成員的順序。
原則125:如果能夠利用有關特定使用者使用模式的知識,我們通常可以為其管理的物件編寫更有效的分配程式。
指導方針43:考慮提供一種方法在塊分配和動態記憶體的單獨分配之間進行切換。
定義54:當程式失去了對動態分配的記憶體塊進行釋放的能力時會發生記憶體洩露。
《大規模C 程式設計》讀書筆記19
原則59 只保留乙個不透明指標 指向包含乙個類的所有私有成員的結構 會使乙個具體的類能夠將其客戶程式與其實現絕緣。定義35 乙個具體類如果滿足下列條件,就是完全絕緣的 只包含乙個資料成員,它表面上是不透明指標,指向乙個定義具體類的實現的non const struct 定義在.c檔案中 不包含任何其...
《大規模C 程式設計》讀書筆記23
technorati 標籤 c 大規模c 程式設計,讀書筆記 原則83 乙個類是乙個adt的具體規範,乙個元件是乙個抽象的具體規範。原則84 原則85 在任何可行的地方,延緩不必要功能的實現可以降低開發和維護成本,並且可以避免過早地進行精確的介面和行為設計。定義46 如果有效實現定義在乙個物件上的操...
《大規模C 程式設計》讀書筆記24
technorati 標籤 c 大規模c 程式設計,讀書筆記 原則92 可讀性 不僅僅是易用性 應該是使用運算子過載的主要原因。指導方針11 乙個過載運算子的語義對客戶應該是自然的 明顯的和直觀的。指導方針12 使用者自定義型別的過載運算子的語法屬性,應該反映已經為基本型別定義了的屬性。原則93 讓...