Posted on 2010-09-03 07:06
silentneil 閱讀(281)
評論(0) 編輯 收藏 引用 所屬分類:
C/C++
將文件間的編譯依賴性降至最低:
在頭文件中用指針和引用來代替實(shí)體
先聲明需要的類,不要再頭文件中再引用其他的頭文件,讓用戶來引用
賦值操作函數(shù)
缺省的賦值操作符會(huì)執(zhí)行成員的逐個(gè)賦值操作,對指針來說是逐位拷貝,如b=a這樣會(huì)導(dǎo)致2個(gè)問題:
1)b曾指向的內(nèi)存永遠(yuǎn)不會(huì)被刪除,即永遠(yuǎn)丟失;2)a和b指向同一個(gè)空間,只要其中一個(gè)被刪除,另一個(gè)也將被刪除。
初始化列表
盡量使用初始化而不要在構(gòu)造函數(shù)里賦值,因?yàn)閷onst和引用數(shù)據(jù)成員只能被初始化,不能被賦值
另外,初始化列表中成員列出的順序和它們在類中聲明的順序相同,而不是和初始化列表中的順序相同
operator=賦值函數(shù)
1)給所有數(shù)據(jù)成員賦值,2)檢查給自己賦值的情況(*this==ths)
為需要?jiǎng)討B(tài)分配內(nèi)存的類聲明一個(gè)拷貝構(gòu)造函數(shù)和一個(gè)賦值操作符
盡量用“傳引用”而不用“傳值”
必須返回一個(gè)對象時(shí)不要試圖返回一個(gè)引用
不要重新定義繼承而來的非虛函數(shù)
編譯器為類生成的函數(shù):一個(gè)缺省構(gòu)造函數(shù),一個(gè)拷貝構(gòu)造函數(shù),一個(gè)賦值運(yùn)算符,一個(gè)析構(gòu)函數(shù),一對取址運(yùn)算符