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

            tbwshc

            tbw

              C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              95 Posts :: 8 Stories :: 3 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(4)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            任何接口設(shè)計(jì)的一個(gè)準(zhǔn)則:讓接口容易被正確使用,不容易被誤用。

            理想上:如何客戶企圖使用某個(gè)接口缺沒有獲得他所預(yù)期的行為,這個(gè)代碼不該通過編譯;如果代碼通過了編譯,他的行為就該是客戶所想要的。

            1. 導(dǎo)入外覆類型(wrapper types)

            2. 讓types容易被正確使用,不容易被誤用。盡量領(lǐng)你的types行為與內(nèi)置types一致。

            3. 設(shè)計(jì)class猶如設(shè)計(jì)type

            新type的對(duì)象應(yīng)該如何被創(chuàng)建和銷毀?(自己設(shè)計(jì)operatornew,operatornew[],operator delete和operator delete[])

            對(duì)象的初始化和對(duì)象的復(fù)制該有什么樣的差別?對(duì)應(yīng)于不同的函數(shù)調(diào)用

            新type的對(duì)象如果被passed by value ,意味著什么

            什么是新type的“合法值”?(??)

            你的新type需要配合某個(gè)繼承圖系嗎?

            你的心type需要什么樣的轉(zhuǎn)換

            什么樣的操作符合函數(shù)對(duì)此新type而言是合理的

            什么樣的標(biāo)準(zhǔn)函數(shù)應(yīng)該駁回

            誰該取用新type的成員

            什么是新type的未聲明接口

            你的新type有多么一般化

            你真的需要一個(gè)新type嗎

             

            一、寧以pass-by-reference-to-const 替換 pass-by-value

            1.tbw效率高,沒有任何構(gòu)造函數(shù)或析構(gòu)函數(shù)被調(diào)用,因?yàn)闆]有任何新對(duì)象被創(chuàng)建。

            2. by refrenece方式傳遞參數(shù)還可以避免對(duì)象slicing 問題

            二、必須返回對(duì)象時(shí),別妄想返回其reference

            所有用上static對(duì)象的設(shè)計(jì),會(huì)造成多線程安全性的懷疑。

            三、將成員變量聲明為private:

            1. 可以實(shí)現(xiàn)出“不準(zhǔn)訪問”、“只讀訪問”、“讀寫訪問”、“惟寫訪問”

            2. 封裝:它使我們能夠改變事物而只影響有限客戶。

            將成員變量隱藏在函數(shù)接口的背后,可以為“所有可能的實(shí)現(xiàn)”提供彈性。如:tb變量被讀或被寫時(shí)通知其他對(duì)象、可以驗(yàn)證class的約束條件以及函數(shù)的前提和事后轉(zhuǎn)帖;以及在多線程環(huán)境執(zhí)行同步控制。。。。等。

            四、寧以non-member、non-friend替換member函數(shù)

            1. namespace WebBrowserStuff{ 
            2.         class WebBrowser{...}; 
            3.         void clearBrowser(WebBrowser& wb); 

            五、若所有參數(shù)皆需要類型轉(zhuǎn)換,請(qǐng)為此采用non-member函數(shù)

            1. class Rational { 
            2. ... 
            3.  
            4. const Rational operator*(const Rational& lhs,const Rational& rhs) 
            5. return Rational( lhs.numerator()* rhs.numerator()
            6. ,lhs.denominator()*rhs.denominator() ); 
            7.  
            8. Rational oneFourth(1,4); 
            9. Rational result; 
            10. result = oneFourth * 2; 
            11. result = 2*oneFourth; 

             六、考慮寫出一個(gè)不拋異常的swap函數(shù)

            posted on 2013-06-25 17:17 tbwshc 閱讀(559) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久久精品人妻一区二区三区蜜桃| 国产精品99久久久久久猫咪| 综合久久精品色| 久久亚洲AV无码精品色午夜| 久久国产色AV免费观看| 69国产成人综合久久精品| 久久亚洲国产成人影院网站| 亚洲综合精品香蕉久久网| 国产福利电影一区二区三区久久老子无码午夜伦不 | 伊人久久综合热线大杳蕉下载| 国产精品免费久久久久电影网| 免费久久人人爽人人爽av| 色综合久久中文色婷婷| 伊人久久大香线蕉综合热线| 久久91精品国产91久久户| 日韩欧美亚洲综合久久影院Ds| 久久婷婷成人综合色综合| 久久精品国产第一区二区| …久久精品99久久香蕉国产 | 伊人久久大香线蕉精品不卡| .精品久久久麻豆国产精品| 久久99热这里只有精品国产| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲国产成人久久精品影视| 97精品伊人久久大香线蕉| 色天使久久综合网天天| 国产精品成人久久久久三级午夜电影| 97久久国产露脸精品国产| 精品国产日韩久久亚洲| 亚洲国产成人久久综合区| 午夜精品久久久久9999高清| 久久www免费人成看国产片| 欧美综合天天夜夜久久| 国产亚洲欧美精品久久久| 蜜臀久久99精品久久久久久小说| 77777亚洲午夜久久多喷| 国产精品中文久久久久久久| 四虎久久影院| 久久香综合精品久久伊人| 久久人人爽人人爽人人片av麻烦 | 色欲综合久久躁天天躁蜜桃|