• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Bjarne Stroustrup的FAQ:C++的風格與技巧

    發布: 2008-4-23 15:44 | 作者: 不詳 | 來源: www.wushuang.net | 查看: 121次 | 進入軟件測試論壇討論

    領測軟件測試網



    把*放到名字這一邊,看來也不能有效地減少這種錯誤:

    int *p, p1; // 也許是錯的?

    為每一個名字寫一條聲明最大程度地解決了問題——特別是當我們初始化變量的時候。人們幾乎不會這樣寫:

    int* p = &i;
    int p1 = p; // 錯誤:int用一個int*初始化了

    如果他們真的這么干了,編譯器也會指出。

    每當事情可以有兩種方法完成,有人就會迷惑。每當事情僅僅是一個風格的問題,爭論就會沒完沒了。為每一個指針寫一條聲明,而且永遠都要初始化變量,這樣,混亂之源就消失了。更多的關于C的聲明語法的討論,參見《C++語言的設計和演變》。

    對于我的代碼,哪一種布局風格(layout style)是最好的?

    這種風格問題屬于個人的愛好。人們往往對布局風格的問題持有強烈的意見,不過,也許一貫性比某種特定的風格更加重要。象大多數人一樣,我花了很長的時間,來為我的偏好作出一個固定的結論。

    我個人使用通常稱為“K&R”的風格。當使用C語言沒有的構造函數時,需要增加新的習慣,這樣就變成了一種有時被稱為“Stroustrup”的風格。例如:

    class C : public B {
    public:
    // ...
    };

    void f(int* p, int max)
    {
    if (p) {
    // ...
    }

    for (int i = 0; i<max; ++i) {
    // ...
    }
    }

    比大多數布局風格更好,這種風格保留了垂直的空格,我喜歡盡可能地在合理的情況下對齊屏幕。對函數開頭的大括弧的放置,有助于我第一眼就分別出類的定義和函數的定義。

    縮進是非常重要的。

    設計問題,諸如作為主要接口的抽象基類的使用,使用模板以表現有彈性的類型安全的抽象,以及正確地使用異常以表現錯誤,比布局風格的選擇要重要得多。

    我應該將“const”放在類型之前還是之后?

    我把它放在前面,但那僅僅是個人愛好問題!癱onst T”和“T const”總是都被允許的,而且是等效的。例如:

    const int a = 1; // ok
    int const b = 2; // also ok

    我猜想第一種版本可能會讓少數(更加固守語法規范)的程序員感到迷惑。

    為什么?當我發明“const”(最初的名稱叫做“readonly”,并且有一個對應的“writeonly”)的時候,我就允許它出現在類型之前或之后,因為這樣做不會帶來任何不明確。標準之前的C和C++規定了很少的(如果有的話)特定的順序規范。

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>