• <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>

            思勤無邪

            上學時,因我年齡最小,個頭也最小,上課時,就像大猩猩堆里的猴一般。如今,這猴偶爾也把最近的一些情況寫在這里。

               :: 首頁 :: 聯系 :: 聚合  :: 管理
              132 Posts :: 1 Stories :: 178 Comments :: 0 Trackbacks

            公告

                 吾日常三省吾身,曰思、曰勤、曰無邪。

            積分與排名

            • 積分 - 185032
            • 排名 - 140

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜


            摘錄自Bjarne Stroustrup 的《The C++ Programming Language》(Special Edition)

            一、致讀者

            1.  在編程序時,你是在為你針對某個問題的解決方案中的思想建立起一種具體表示。讓程序的結構盡可能地直接反映這些思想:
               ★.如果你能把“它”看成一個獨立的概念,就把它做成一個類。
               ★.如果你能把“它”看成一個獨立的實體,就把它做成某個類的一個對象。
               ★.如果兩個類有共同的Interface,將此Interface做成一個抽象類。
               ★.如果兩個類的實現有某些顯著的共同東西,將這些共性做成一個基類。
               ★.如果一個類是一種對象的容器,將它做成一個模板。
               ★.如果一個函數實現對某容器的一個算法,將它做成為對一族容器可用的模板函數。
               ★.如果一組類、模板等相互之間有邏輯聯系,將它們放進一個名字空間里。

            2.  在你定義一個并不是實現某個像矩陣或復數這樣的數學對象的類時,或者定義一個低層的類型如鏈接表的時候:
               ★.不要使用全局數據(使用成員)。
               ★.不要使用全局函數。
               ★.不要使用公用數據成員。
               ★.不要使用友元,除非為了避免a或c。
               ★.不要在一個類里面放“類型域”(指那種為了說明一個類所存儲數據的情況而放置的標志域) ;采用虛函數。
               ★.不要使用在線函數(inline function),除非作為效果顯著的優化。

            二、C++ 概覽

            1.  不用害怕,一切都會隨著時間的推移而逐漸明朗起來。
            2.  你并不需要在知道了C++的所有細節之后才能寫出好的C++程序。
            3.  請特別關注程序設計技術,而不是各種語言特征。

            三、標準庫概覽

            1.  不要像重新發明車輪那樣企圖做每件事;去使用庫。
            2.  不要相信奇跡;要理解你的庫能做什么,它們如何做,它們做時需要多大的代價。
            3.  當你遇到一個選擇時,應該優先選擇標準庫而不是其他的庫。
            4.  不要認為標準庫對于任何事情都是最理想的。
            5.  切記#include 你所用到的功能的頭文件。
            6.  記住,標準庫的功能定義在名字空間std之中。
            7.  請用string,而不是char*。
            8.  如果懷疑,就用一個檢查區間范圍的向量(例如Vec)。
            9.  vector 、list和 map 都比T[] 好。
            10. 如果向一個容器中添加一個元素,用push_back() 或 back_inserter()。
            11. 采用對vector的push_back(),而不是對數組的realloc()。
            12. 在main()中捕捉公共的異常。

            四、類型和聲明

            1.  保持較小的作用域。
            2.  不要在一個作用域和它外圍的作用域里采用同樣的名字。
            3.  在一個聲明中只聲明一個名字。
            4.  讓常用的和局部的名字比較短,讓不常用的和全局的名字比較長。
            5.  避免看起來類似的名字。
            6.  維持某種統一的命名風格。
            7.  仔細選擇名字,反映其意義而不是反映實現方式。
            8.  如果所用的內部類型表示某種可能變化的值,請用typedef 為它定義一個有意義的名字。
            9.  用typedef為類型定義同義詞,用枚舉或類去定義新類型。
            10. 切記每個聲明中都必須描述一個類型(沒有“隱式的int”)。
            11. 避免有關字符數值的不必要假設。
            12. 避免有關整數大小的不必要假設。
            13. 避免有關浮點類型表示范圍的不必要假設。
            14. 優先使用普通的int 而不是short int 或者long int。
            15. 優先使用double 而不是float 或者long double。
            16. 優先使用普通的 char 而不是 signed char或者 unsigned char。
            17. 避免做出有關對象大小的不必要假設。
            18. 避免無符號算術。
            19. 應該帶著疑問去看待從signed 到unsigned ,或者從unsigned 到signed 的轉換。
            20. 應該帶著疑問去看待從浮點到整型的轉換。
            21. 應該帶著疑問去看待向較小類型的轉換,如將int轉換到char。

            五、忠告

            1.  避免非平凡的指針算術。
            2.  當心,不要超出數組的界線去寫。
            3.  盡量使用0而不是NULL。
            4.  盡量使用vector 和valarray ,而不是內部(C風格)的數組。
            5.  盡量使用string而不是以0結尾的char 數組。
            6.  盡量少用普通的引用參數。
            7.  避免 void*,除了在某些低級代碼里。
            8.  避免在代碼中使用非平凡的文字量(“神秘的數”)。相反,應該定義和使用各種符號常量。
            posted on 2006-09-28 08:23 思勤無邪 閱讀(476) 評論(0)  編輯 收藏 引用 所屬分類: C++
            色综合久久中文字幕无码| 97久久精品人人澡人人爽| 伊人久久大香线蕉综合5g| 亚洲国产成人精品女人久久久| 91麻豆国产精品91久久久| 伊人久久大香线蕉成人| 久久亚洲精精品中文字幕| 一本久久a久久精品vr综合| 久久99精品国产麻豆宅宅| 国产视频久久| 久久精品天天中文字幕人妻| 久久九九亚洲精品| 久久精品无码一区二区WWW| 久久精品一区二区三区不卡| 久久久久无码精品| 粉嫩小泬无遮挡久久久久久| 性做久久久久久久久久久| 久久久久人妻精品一区| 一本久道久久综合狠狠躁AV| 久久亚洲欧美日本精品| 久久国产免费直播| 欧美午夜A∨大片久久 | 亚洲色大成网站www久久九 | 综合网日日天干夜夜久久| 国产亚洲欧美精品久久久| 精品久久久久久无码人妻蜜桃| 久久夜色精品国产噜噜噜亚洲AV| 精品欧美一区二区三区久久久| 97精品伊人久久久大香线蕉 | 人妻无码αv中文字幕久久琪琪布 人妻无码精品久久亚瑟影视 | 久久亚洲国产欧洲精品一| 精品多毛少妇人妻AV免费久久| 久久久久久无码国产精品中文字幕| 久久精品国产亚洲av麻豆色欲| 久久综合九色综合欧美就去吻| 亚洲国产精品热久久| 婷婷伊人久久大香线蕉AV | 久久嫩草影院免费看夜色| 精品一区二区久久| 精品国产乱码久久久久久郑州公司 | 免费国产99久久久香蕉|