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

            Zero Lee的專欄

            關于C++中一些基本設計規則和指導方針

            ???C++是一種大型語言,為更大的設計空間開辟了道路。這里提供一些基本設計規則和指導方針,它們被證明是非常有用的。
            ???主要設計規則被認為是絕對不能違反的。甚至偶爾的違反也可能危及大型系統的完整性。
            ???次要設計規則也被認為是遵守的,但也許不必嚴格地遵守。在一個隔離的實例中違反一個次要規則不大可能產生嚴重的全局性影響。
            ???指導方針是作為經驗法則提出來的,因此必須遵守,除非有強制性的工程方面的原因要求遵守別的原則。

            ???把一個類的數據成員暴露給其客戶程序違反了封裝原則。提供對數據成員的非私有訪問意味著表示上的局部改變可能迫使客戶重新編寫代碼。此外,由于允許對數據成員進行可寫訪問,無法阻止偶爾誤用導致數據處在不一致的狀態。保護的成員數據像公共成員數據一樣,無法限制 因數據改變而可能影響到的客戶的數量。

            ???全局變量會污染全局名稱空間,而且會歪曲設計的物理結構,使得實際上不可能進行獨立的測試和有選擇的重用。在新的C++項目中沒有必要使用全局變量。我們可以通過將變量放置在一個類的作用域中作為私有靜態成員、并提供公共靜態成員函數訪問它們的方法來系統消除全部變量。但是,對這種模塊的過度依賴是一種不良設計的癥狀。

            ???自由函數,特別是那些不在任何用戶自定義類型上操作的函數,在系統集成時很可能與別的函數沖突。將這樣的函數嵌套在類作用域中作為靜態成員基本上可以消除沖突的危險。

            ???枚舉類型、typedef以及常量數據也可能威脅全局名稱空間。通過將枚舉類型嵌套在類作用域中,任何二義性都可以通過作用域解析來消除。一個在文件作用域中的typedef看起來有點像類,但是在大型項目中急難發現。通過將typedef嵌套在類作用域中,他們就變的相對容易追蹤。一個在頭文件中定義的整數常量,其最好的表達方式通常是通過在類作用域中的一個枚舉值來表達。其它常量類型可以通過使它們成為某個類的靜態常量成員來限定其范圍。

            ???預處理宏對于人和機器來說都難以理解。由于宏不是C++的一部分,所以宏不遵守作用域約束,并且,如果將宏放置在一個頭文件中,宏可能與系統中的任何文件的任何標識符沖突。因此,宏不應該出現在頭文件中,除非是作為包含衛哨。

            ???總的看來,我們應該避免在一個頭文件的文件作用域中引入除了類、結構、聯合和自由運算符之外的任何東西。當然,我們允許在頭文件中定義內聯成員函數。

            ???一個定義被包含兩次會引起編譯時錯誤。因為大多數C++頭文件包含定義,我們有必要防止再收斂包含圖的可能性。在一個頭文件中,用內部包含衛哨圍繞定義可以確保每個頭文件的內容在任何一個編譯單元中最多被加入一次。

            ???冗余(外部)包含衛哨雖然不是一定必需的,但是它可以確保我們避免編譯時的二義包含行為。通過用冗余衛哨圍繞頭文件的包含指令,我們可以確保每個編譯單元最多兩次打開一個頭文件。

            ???良好的文檔是軟件開發必不可少的一部分。缺少文檔將降低可用性。文檔的一個重要部分是聲明什么是沒有定義的。否則,客戶可能會依賴巧合的行為,這種行為只能來自特定的實現選擇。
            ???

            posted on 2007-01-14 15:45 Zero Lee 閱讀(510) 評論(0)  編輯 收藏 引用 所屬分類: CC++ Programming

            久久精品国产99久久久| 国产精品九九久久免费视频 | 一本一本久久a久久精品综合麻豆| 久久国产成人午夜aⅴ影院 | 亚洲午夜精品久久久久久浪潮| 精品久久久一二三区| 国产精品久久久久久久久鸭| 国产2021久久精品| 国产aⅴ激情无码久久| 久久久中文字幕| 亚洲国产精品无码久久久秋霞2| 人人狠狠综合久久亚洲婷婷| 97精品依人久久久大香线蕉97| 2021少妇久久久久久久久久| 亚洲欧洲中文日韩久久AV乱码| 久久国产精品-久久精品| 久久夜色精品国产噜噜亚洲a| 国产精品成人99久久久久| 无码人妻少妇久久中文字幕蜜桃 | 人妻丰满AV无码久久不卡| 久久国产成人亚洲精品影院| 久久99久久99小草精品免视看| 无码国内精品久久人妻蜜桃| 2021国产精品久久精品| 久久久久亚洲精品男人的天堂| 久久亚洲国产午夜精品理论片| 久久精品国产亚洲av麻豆色欲| 亚洲色欲久久久综合网| 国产精品99久久久精品无码 | 亚洲人成伊人成综合网久久久| 2020国产成人久久精品| 久久午夜福利无码1000合集| 亚洲国产精品狼友中文久久久 | 色综合合久久天天综合绕视看| 久久天天躁狠狠躁夜夜躁2O2O| 狠狠色婷婷久久综合频道日韩 | 国产亚洲色婷婷久久99精品91 | 99久久精品国产毛片| 国产免费久久精品99久久| 久久av免费天堂小草播放| 曰曰摸天天摸人人看久久久|