technorati 標籤:
c++,
大規模c++程式設計,
讀書筆記
原則96:不必為了多型行為而損害語法問題,例如雙目運算子的對稱隱式轉換。
原則97:虛函式實現行為上的變化;資料成員實現值的變化。
定義47:
隱藏(hide):乙個成員函式若與在乙個基類或檔案作用域中宣告的某個函式同名,則隱藏了那個函式。
過載(overload):乙個函式用定義在同一作用域的同樣的名稱過載了另乙個函式的名稱。
覆蓋(override):乙個成員函式覆蓋了在乙個基類中宣告為虛擬的同樣的函式。
重新定義(redefine):乙個函式的預設定義被另乙個定義不可挽回的取代。
指導方針13:避免將乙個基類函式隱藏在乙個派生類中。
乙個派生自乙個純協議類的抽象類有時被稱為部分實現。在乙個部分實現中的一些函式可能有乙個有用的預設行為,但是它們應該不必自動成為預設行為,而應該定義為純虛函式,迫使乙個派生類作者顯式的啟用預設行為。
#includestruct base ;
base::~base() {}
struct partial : base ;
void partial::f()
partial::~partial() {}
struct derived : partial
void f();
~derived();
}; void derived::f()
derived::~derived() {}
int main()
// output:
// derived::f
// partial::f
原則98:靜態成員函式通常用於實現乙個單獨工具類中的非基本功能。
《大規模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 讓...