條款53:不要輕忽編譯器的警告 努力在編譯器最高警告級(jí)別下爭(zhēng)取“無任何警告”末融。 不要過度依賴編譯器的報(bào)警能力墓塌,不同的編譯器對(duì)待同一件事情的態(tài)度不...
條款49:了解new-handler的行為 當(dāng)operator new或者operator new[]分配內(nèi)存時(shí)牲迫,如果不能獲得指定大小的內(nèi)存時(shí)休吠,...
背景: 實(shí)際項(xiàng)目中谒获,我們往往將一個(gè)系統(tǒng)分解成一個(gè)個(gè)功能模塊蛤肌,這些功能模塊以動(dòng)態(tài)庫加載的方式由主程序加載使用。 需求1: 主程序定義好功能類的接口...
條款41:了解隱式接口和編譯器多態(tài) 對(duì)于class而言批狱,接口是顯式的裸准,動(dòng)態(tài)通過virtual函數(shù)實(shí)現(xiàn),發(fā)生于運(yùn)行期間赔硫。 對(duì)于template而言...
條款32:確定public繼承塑模出is-a關(guān)系 is-a和has-a是C++類的兩個(gè)重要關(guān)系描述炒俱,如果類D基于public方式繼承于類B,則D...
背景:我們?cè)诔绦蛑型枰獙?duì)一個(gè)類實(shí)例的合法性進(jìn)行檢查爪膊,大部分的程序員都會(huì)想到在類的方法中提供一個(gè)方法檢查合法性(比如提供一個(gè)IsValid函數(shù)...
條款26:盡可能延后變量定義式的出現(xiàn)時(shí)間 考察下面的示例代碼: 很顯然权悟,這里的myStr提前定義了,并且會(huì)帶來額外的默認(rèn)構(gòu)造函數(shù)的開銷推盛,雖然在這...
條款18:讓接口容易被正確使用峦阁,不易被誤用 建立新的類型作為函數(shù)可以防止用戶輸入錯(cuò)誤的數(shù)據(jù),考察下面的類構(gòu)造函數(shù): 當(dāng)用戶調(diào)用構(gòu)造函數(shù)時(shí)耘成,很容易...
C++程序開發(fā)中我們常用std::sort函數(shù)對(duì)一個(gè)vector數(shù)組進(jìn)行排序榔昔,但是某些情況下會(huì)產(chǎn)生crash的情況,比如下面的代碼: 究其原因是...