• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            逛奔的蝸牛

            我不聰明,但我會(huì)很努力

               ::  :: 新隨筆 ::  ::  :: 管理 ::
            1.   盡量用const和inline,而不用#define,即盡量用編譯器,而不用預(yù)處理器。
            2.   盡量用iostream,而不用stdio.h。
            3.   盡量用new和delete,而不用malloc和free,因?yàn)閚ew和delete會(huì)執(zhí)行構(gòu)造函數(shù)和析構(gòu)函數(shù),而malloc和free不會(huì)。
            4.   盡量在函數(shù)中使用C++風(fēng)格的注釋 // 函數(shù)頭用/* */
            5.   new和delete與malloc和free要成對(duì)出現(xiàn)。
            6.   析構(gòu)函數(shù)里對(duì)指針成員delete,delete NULL指針并不影響什么。
            7.   預(yù)先準(zhǔn)備好內(nèi)在不夠的情況,try{ new..} catch(bad_alloc baex) {}
            8.   寫operator new和operator delete時(shí)要遵循常規(guī)。
            9.   如果寫了operator new,就要寫operator delete。
            10. 為需要?jiǎng)討B(tài)分配內(nèi)存的類提供一個(gè)復(fù)制構(gòu)造函數(shù)和賦值操作運(yùn)算符。
            11. 盡量使用初始化,而不在構(gòu)造函數(shù)里賦值。CC::CC(int v_value) : value(v_value) {}
            12. 初始化列表中成員的列出順序與成員的在類中的聲明順序相同。
            13. 確定基類有虛析構(gòu)函數(shù),否則釋放子類時(shí)只能執(zhí)行基類的析構(gòu)函數(shù),而不會(huì)執(zhí)行子類的虛構(gòu)函數(shù)。
            14. 讓operator= 返回*this的引用, (a = b) = c;只是為了這個(gè)能正確執(zhí)行,不過(guò)這可是一個(gè)很阿格里拉的編程風(fēng)格。
            15. 在operator= 中對(duì)所有數(shù)據(jù)成員賦值。
            16. 在operator= 中檢查對(duì)自己賦值的情況。如不處理這種情況,在operator= 中先釋放指針對(duì)象數(shù)據(jù),
                 然后再把目標(biāo)的數(shù)據(jù)復(fù)制過(guò)來(lái),因?yàn)槭亲约航o自己復(fù)制,但數(shù)據(jù)已經(jīng)釋放,所以發(fā)生錯(cuò)誤。
            17. 爭(zhēng)取使類的接口完整并最小。
            18. 分清成員函數(shù),非成員函數(shù)和友元函數(shù)。
            19. 避免public接口出現(xiàn)數(shù)據(jù)成員。set, get.
            20. 盡可能使用const。
            21. 盡量傳引用,而不是傳值。const ClassName&。
            22. 必須返回一個(gè)對(duì)象時(shí),不要試圖返回一個(gè)引用。如函數(shù)中的臨時(shí)變量的引用。
            23. 在函數(shù)重載和設(shè)定參數(shù)缺省值的函數(shù)之間慎重選擇。
            24. 避免指針和數(shù)字類型重載:void func(int x)與void func(string* str)傳入0時(shí):func(static_cast<string*>(null)。
            25. 如果不想使用隱式生成的函數(shù),就顯示的禁用它:private Array& operator=(const Array& ref);
            26. 使用名字空間的好處:盡可能的避免名字沖突引發(fā)的問(wèn)題。假如一個(gè)程序中有幾百個(gè)名字沖突,名字空間能很好的解決這個(gè)問(wèn)題。
            27. 避免返回內(nèi)部數(shù)據(jù)的句柄:指針。
            28. 避免返回private和protected成員的非const引用和指針。
            29. 千萬(wàn)不要返回局部對(duì)象的引用,也不要返回函數(shù)內(nèi)部定義的new初始化的指針,容易忘掉delete。
            30. 盡可能推遲變量的定義,這個(gè)在C中做不到,定義無(wú)用的變量必然伴隨無(wú)用的開銷。
            31. 將文件間的編譯依賴性降至最低:分離的關(guān)鍵在于:對(duì)類的聲明的依賴與對(duì)類的定義的依賴:
                 盡量讓頭文件不要依賴于另的文件。如使用ImageLoad.h中的Image類,在類的聲明中不要#include"ImageLoad.h",
                 而只是聲明類class Image; 在類的定義中才使用#include"ImageLoad.h"。
                 盡量不要在頭文件中包含其他的頭文件。
            32. 使用函數(shù)體現(xiàn)“是一個(gè)”的含義,而不是“有一個(gè)”。
            33. 明智的使用多繼承,這東西不好玩。
            34. 編譯器能為我們自動(dòng)生成的函數(shù):
                 構(gòu)造函數(shù),析構(gòu)函數(shù),復(fù)制構(gòu)造函數(shù),賦值運(yùn)算符重載,一對(duì)取地址運(yùn)算符。
            35. 寧可編譯鏈接時(shí)出錯(cuò),也不愿運(yùn)行時(shí)出錯(cuò)。極少情況下會(huì)使用C++拋出異常:內(nèi)存耗盡:
                 C++中沒(méi)有上溢,下溢,除零檢查,數(shù)組越界檢查。
            36. 重視編譯器警告。
            37. 熟悉標(biāo)準(zhǔn)庫(kù),在名字空間std中的。C++的偽標(biāo)準(zhǔn)庫(kù),如iostream.h, limits.h。
            38. 常變量,類成員,父類構(gòu)造函數(shù)要放在初始化列表初始化。
            39. 指針定義時(shí)初始化為NULL。
            40. 終極解決大法:良好的編譯習(xí)慣可很避免上面很多情況的發(fā)生,如有一天C++的語(yǔ)法變得像Java一樣限制那么多,
                 就不會(huì)出現(xiàn)這么多問(wèn)題,不過(guò)也正因?yàn)槿绱耍懦霈F(xiàn)了N多C++奇淫技巧,就如茴香豆的茴有四種寫法,
                 這里可不止四種。
            posted on 2010-12-17 18:07 逛奔的蝸牛 閱讀(692) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C/C++
            亚洲欧美精品一区久久中文字幕| 国产精品一区二区久久国产| 狠狠精品干练久久久无码中文字幕| 久久久国产精品福利免费| 9191精品国产免费久久| 久久亚洲电影| 人妻少妇久久中文字幕| 国产成人精品久久亚洲| 久久精品国产亚洲AV忘忧草18| 91精品国产综合久久久久久| 久久精品无码一区二区三区日韩 | 亚洲嫩草影院久久精品| 久久精品成人欧美大片| 久久久久久久波多野结衣高潮| www性久久久com| 亚洲国产高清精品线久久| 久久国产一区二区| 亚洲欧美日韩久久精品| 色综合久久精品中文字幕首页 | 久久不射电影网| 99精品久久久久久久婷婷| 精品久久人人妻人人做精品| 久久丫精品国产亚洲av| 久久SE精品一区二区| 欧美成a人片免费看久久| 伊人久久大香线焦综合四虎| 亚洲精品乱码久久久久久蜜桃不卡| 久久99久久无码毛片一区二区| 久久久久久午夜成人影院| 国产69精品久久久久APP下载| 国产精品成人精品久久久 | 97久久精品人人做人人爽| 久久精品国产精品青草app| 久久久久久无码Av成人影院| 亚洲AV无码久久精品狠狠爱浪潮 | 久久久久人妻一区精品色 | 国产精品久久久久久搜索| 久久久久波多野结衣高潮| 国产毛片欧美毛片久久久| 亚洲AV日韩精品久久久久| 久久夜色精品国产噜噜噜亚洲AV|