《Effective C 》條款04總結

2021-08-09 13:07:46 字數 442 閱讀 7479

條款04:確定物件使用前已被初始化

class test

;...

test obj;

其中,obj的成員變數(x,y)有時候被初始化,有時候不被初始化。讀取未初始化的值會導致一些不明確的行為,有時候可能會導致你的程式終止執行。

處理方法:永遠在使用物件之前先將它初始化。

1、對於內建型別,採用手工方式進行完成,如下所示:

int data(12);

string str("hello world");

2、對於內建型別之外的型別利用建構函式進行初始化(盡可能的使用初始化列表)

注意:(1)成員初始化順序:

先基類後派生類,對於class內的成員變數按照成員變數的宣告順序被初始化

(2)static成員在類外進行初始化。

Effective C 經驗條款

高效c 4 必須返回物件時,別妄想返回其reference 這句話什麼意思呢?就是在乙個函式內,如果你需要這個函式返回乙個新的物件,那麼這個函式的返回值型別就不要定義成引用型別。就直接返回這個類型別。首先,我們知道在函式傳遞引數時,傳遞引用的好處,尤其是對那麼比較大的型別,但是對於內建型別和stl的...

effective c 條款總結

條款1 盡量用const 和inline 而不用 define 條款2 盡量用而不用 條款3 盡量用new delete 而不用malloc free 條款4 盡量使用c 風格注釋 條款5 對應的new和delete 都要採用相同的形式 條款6 析構函式裡對指標成員呼叫delete條款 條款7 預先...

Effective C 經驗條款

高效c 模板與泛型程式設計 在c 中模板體現的是編譯期多型,virtual體現的是執行期多型。關於typename的雙重含義 在宣告template引數時,不論使用keywordclass或typename,意義全然同樣。可是c 並不總是把class和typename視為等價。有時候必須使用type...