effective C 讀書筆記 條款20

2021-06-26 20:24:57 字數 719 閱讀 1319

條款20:寧以 pass-by-reference-to-const 替換 pass -by -value

1:採用後者效率高;看**:

#include using namespace std;

class person

{public:

person()

{ cout<<"person()"《這個我單獨編寫了乙個程式證明我的是對的,呼叫的是子類的copy建構函式,不會呼叫父類的copy建構函式。

看**:

#include using namespace std;

class parent

{public:

parent()

{ cout<<"呼叫父類的無參建構函式"<

上面**說明了  子類物件呼叫copy建構函式構造物件的時候,不會呼叫父類的copy建構函式,而是呼叫的父類的普通建構函式。

2:後者避免物件切割問題;看**:

#include using namespace std;

class base

{public:

base()

{ cout<<"呼叫父類的建構函式"《所以  以值傳遞方式 子類賦給父類的時候會發生物件切割,採用引用代替他。

總結一句話:

盡量以pass-by-reference-to-const 替換 pass -by -value;前者通常比較高效,並可以避免切割問題。

《effective C 》讀書筆記

1,c 關鍵字explicit c 中,乙個引數的 建構函式 或者除了第乙個引數外其餘引數都有預設值的多參建構函式 承擔了兩個角色。1 是個 構造器,2 是個預設且隱含的型別轉換操作符 所以,有時候在我們寫下如 aaa 這樣的 且恰好 的型別正好是aaa單引數構造器的引數型別,這時候 編譯器就自動呼...

Effective C 讀書筆記

一 讓自己習慣c 1 條款01 視c 為聯邦語言 c 的組成可分為四部分 1.c c 仍然以c語言為基礎。區塊 語句 預處理 內建資料型別 陣列 指標等都來自c。2.object oriented c c with classes所訴說的 classes 包括構造和析構 封裝 繼承 多型 virtu...

讀書筆記 Effective C

部分條款過於深奧,部分條款已了然於心,僅記錄當下所識所學 對於常量巨集定義,最好用const代替 define 對於函式巨集定義,最好用inline代替 define include ifdef ifndef仍被需要 內建物件記得手動初始化 使用成員初始列替換賦值操作 以local static替換...