• <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次 | 進入軟件測試論壇討論

    領測軟件測試網



    C++顯式地允許delete操作將操作數左值置0,而且我曾經希望C++的實現能夠做到這一點,但這種思想看來并沒有在C++的實現中變得流行。

    如果你認為指針置0很重要,考慮使用一個銷毀的函數:

    template<class T> inline void destroy(T*& p) { delete p; p = 0; }

    考慮一下,這也是為什么需要依靠標準庫的容器、句柄等等,來將對new和delete的顯式調用降到最低限度的另一個原因。

    注意,通過引用來傳遞指針(以允許指針被置0)有一個額外的好處,能防止destroy()在右值上(rvalue)被調用:

    int* f();
    int* p;
    // ...
    destroy(f()); // 錯誤:應該使用一個非常量(non-const)的引用傳遞右值
    destroy(p+1); // 錯誤:應該使用一個非常量(non-const)的引用傳遞右值

    我能夠寫“void main()”嗎?

    這種定義:

    void main() { /* ... */ }

    在C++中從未被允許,在C語言中也是一樣。參見ISO C++標準3.6.1[2]或者ISO C標準5.1.2.2.1。規范的實現接受這種方式:

    int main() { /* ... */ }



    int main(int argc, char* argv[]) { /* ... */ }

    一個規范的實現可能提供許多版本的main(),但它們都必須返回int類型。main()返回的int值,是程序返回一個值給調用它的系統的方式。在那些不具備這種方式的系統中,返回值被忽略了,但這并不使“void main()”在C++或C中成為合法的。即使你的編譯器接受了“void main()”,也要避免使用它,否則你將冒著被C和C++程序員視為無知的風險。

    在C++中,main()并不需要包含顯式的return語句。在這種情況下,返回值是0,表示執行成功。例如:

    #include<iostream>

    int main()
    {
    std::cout << "This program returns the integer value 0\n";
    }

    注意,無論是ISO C++還是C99,都不允許在聲明中漏掉類型。那就是說,與C89和ARM C++形成對照,當聲明中缺少類型時,并不會保證是“int”。于是:

    #include<iostream>

    main() { /* ... */ }

    是錯誤的,因為缺少main()的返回類型。

    為什么我不能重載點符號,::,sizeof,等等?

    大多數的運算符能夠被程序員重載。例外的是:

    . (點符號) :: ?: sizeof

    并沒有什么根本的原因要禁止重載?:。僅僅是因為,我沒有發現有哪種特殊的情況需要重載一個三元運算符。注意一個重載了 表達式1?表達式2:表達式3 的函數,不能夠保證表達式2:表達式3中只有一個會被執行。

    文章來源于領測軟件測試網 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>