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

            洛譯小筑

            別來(lái)無(wú)恙,我的老友…
            隨筆 - 45, 文章 - 0, 評(píng)論 - 172, 引用 - 0
            數(shù)據(jù)加載中……

            [ECPP讀書筆記 條目1] 把C++看作多種語(yǔ)言的聯(lián)合體


            起初,C++僅僅是增補(bǔ)了面向?qū)ο筇匦缘腃語(yǔ)言。甚至C++原始的名稱都叫做“C with Classes”,即“使用類的C語(yǔ)言”,二者的繼承關(guān)系可見一斑。

            隨著C++逐漸成熟,它開始采納一些與“使用類的C語(yǔ)言”不同的理念、特征以及編程策略,使其顯得更加大膽前衛(wèi),更富有冒險(xiǎn)精神。在組織各個(gè)函數(shù)時(shí)異常處理機(jī)制需要不同的處理方式(參見條目29),模板為設(shè)計(jì)模式帶來(lái)了全新的思維方式(參見條目41),與此同時(shí),STL使C++擁有了前所未有的可擴(kuò)展性。

            今天的C++是一門多范型編程語(yǔ)言,它包含面向過(guò)程、面向?qū)ο蟆⒑瘮?shù)式編程、泛型、元編程等等特征。C++的強(qiáng)大和靈活幾乎是無(wú)可比擬的,但這也會(huì)造成一些困惑。所有“恰當(dāng)用法”的準(zhǔn)則似乎都存在例外。那么我們?cè)撊绾握_理解這樣一門語(yǔ)言呢?

            最簡(jiǎn)單的辦法就是把C++看作一個(gè)由若干門語(yǔ)言組成的聯(lián)合體,而不是一門單一的語(yǔ)言。在某個(gè)特定的子語(yǔ)言中,規(guī)則就會(huì)趨于簡(jiǎn)單、直接,而且容易記憶。當(dāng)你切換到另一門子語(yǔ)言時(shí),規(guī)則也就相應(yīng)地改變了。為了理解C++,你必須能夠辨別C++所有主要的子語(yǔ)言。幸運(yùn)的是,主要的子語(yǔ)言只有四門:

            C。盡管變革是深刻的,C++仍然基于C語(yǔ)言。程序塊、語(yǔ)句、預(yù)處理器、內(nèi)建數(shù)據(jù)類型、數(shù)組、指針,等等,所有都來(lái)自于C。在許多情況下,C++為某些問(wèn)題提供的解決方案要比C更優(yōu)秀(比如條目2(預(yù)處理器的替代方法)和條目13(使用對(duì)象管理資源)),但是當(dāng)你發(fā)現(xiàn)你正在使用C++中的C這一部分編寫程序時(shí),高效編程原則就會(huì)反映出C語(yǔ)言更多的局限所在:沒有模板、沒有異常處理、沒有重載,等等。

            面向?qū)ο蟮腃++。這一部分的C++就是使用類的C語(yǔ)言的一切:類(包括構(gòu)造函數(shù)和析構(gòu)函數(shù))、封裝、繼承、多態(tài)、虛函數(shù)(動(dòng)態(tài)綁定),等等。這是C++中面向?qū)ο蟮慕?jīng)典準(zhǔn)則得到最為直接的應(yīng)用的那一部分。

            包含模板的C++。這是C++中泛型編程的一部分,這也是大多數(shù)程序員涉足最淺的部分。模板的概念遍及C++的方方面面,因此,某些優(yōu)秀的編程守則中有一些特定的、僅針對(duì)模板的段落也不足為奇。(比如,條目46中介紹的在調(diào)用模板函數(shù)時(shí)如何簡(jiǎn)化類型轉(zhuǎn)換)。事實(shí)上,模板如此之強(qiáng)大,它足以帶來(lái)一個(gè)全新的編程范型:模板元編程(template meta-programming,簡(jiǎn)稱TMP)。條目48是對(duì)TMP的一個(gè)簡(jiǎn)介,然而除非你是一個(gè)狂熱的“模板迷”,你大可不必投入過(guò)多精力。主流C++編程很少涉及到TMP規(guī)則。

            STL。顧名思義,STL是一個(gè)模板庫(kù),但是它是一個(gè)非常特別的模板庫(kù)。它將容器、迭代器、算法、函數(shù)對(duì)象之間的約定十分優(yōu)雅的相互協(xié)調(diào)在一起,當(dāng)然模板和庫(kù)也可以基于其它的理念來(lái)構(gòu)建。STL有自己獨(dú)特的解決問(wèn)題的方法,當(dāng)你使用STL編程時(shí),你必須要遵循它的約定。

            時(shí)刻地對(duì)這四門子語(yǔ)言保持頭腦清醒,當(dāng)你從一門子語(yǔ)言切換到另一門時(shí),高效的程序會(huì)要求你必須更改當(dāng)前策略,遇到這種情況時(shí)請(qǐng)不要大驚小怪。比如說(shuō),對(duì)內(nèi)建(比如類似C語(yǔ)言的)類型而言,傳值要比傳引用更高效,但是當(dāng)你從C++中的C遷移到面向?qū)ο蟮腃++后,構(gòu)造函數(shù)和析構(gòu)函數(shù)的存在就意味著傳遞const引用會(huì)更好。在使用“包含模板的C++”時(shí)這一點(diǎn)尤其正確,因?yàn)槟愀揪筒恢喇?dāng)前正在處理的對(duì)象是什么類型。然而當(dāng)開始使用STL時(shí),迭代器和函數(shù)對(duì)象都是基于C語(yǔ)言中的指針機(jī)制創(chuàng)建的,因此對(duì)于迭代器和函數(shù)對(duì)象而言,C語(yǔ)言的傳值規(guī)則又再次奏效了。(關(guān)于各種傳參方法方案選擇的細(xì)節(jié),參見條目20。)

            綜上,C++并不是一門僅僅擁有一套規(guī)則的單一化編程語(yǔ)言,它是四門子語(yǔ)言的聯(lián)合體,每門子語(yǔ)言都有自己的約定。對(duì)這四門子語(yǔ)言時(shí)刻保持清醒,你會(huì)發(fā)現(xiàn)C++并沒有那么難于理解。

            時(shí)刻牢記

            C++ 的高效編程守則不是一成不變的,它根據(jù)你正在使用的那一部分C++而改變。

            posted on 2007-04-02 21:12 ★ROY★ 閱讀(2299) 評(píng)論(6)  編輯 收藏 引用 所屬分類: Effective C++

            評(píng)論

            # re: 【翻】Effective C++ (Item 1)  回復(fù)  更多評(píng)論   

            恩,一定要堅(jiān)持,我就是缺乏堅(jiān)持,希望我們以后相互鼓勵(lì),共同進(jìn)步!
            2007-04-02 21:14 | 夢(mèng)在天涯

            # re: 【翻】Effective C++ (Item 1)  回復(fù)  更多評(píng)論   

            @夢(mèng)在天涯
            哇這么快啊
            希望你能多多幫助我,我是個(gè)半瓶子醋。哈哈
            2007-04-02 21:26 | ★ROY★

            # re: 【翻】Effective C++ (Item 1)  回復(fù)  更多評(píng)論   

            我也是很一知半解的,慢慢學(xué)吧,呵呵
            2007-04-02 22:04 | Qiu Xianli

            # re: 【翻】Effective C++ (Item 1)[未登錄]  回復(fù)  更多評(píng)論   

            報(bào)告樓主已經(jīng)有人翻譯了前 52 條款,在這里
            http://blog.csdn.net/fatalerror99/category/180519.aspx
            希望樓主能不能把剩下的翻一下,多謝了
            2007-04-02 22:40 | C++

            # re: 【翻】Effective C++ (Item 1)  回復(fù)  更多評(píng)論   

            好像似乎可以買到書吧,候捷老師翻譯的~~~~~`
            2007-04-03 08:39 | volnet

            # re: 【翻】Effective C++ (Item 1)  回復(fù)  更多評(píng)論   

            呵呵。書店那么多的書......
            2007-04-03 15:08 | skipper
            人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 国产精品久久久久久影院| 91久久香蕉国产熟女线看| 久久久精品国产| 国产福利电影一区二区三区久久老子无码午夜伦不 | 2021国内久久精品| 四虎国产永久免费久久| 久久久久亚洲AV片无码下载蜜桃| 91精品国产高清久久久久久国产嫩草| 99久久无码一区人妻| 伊人久久大香线蕉AV一区二区| 国产免费久久精品丫丫| 久久妇女高潮几次MBA| 国产成人精品久久亚洲| 欧美日韩精品久久免费| 伊人久久综在合线亚洲2019 | 精品久久久久久久久久久久久久久| 日韩人妻无码一区二区三区久久 | 99久久亚洲综合精品成人| 亚洲综合久久久| 国产一区二区精品久久凹凸| 亚洲AV无码1区2区久久| 久久中文字幕精品| 国产日韩久久久精品影院首页| 青草国产精品久久久久久| 伊人久久大香线蕉无码麻豆| 91精品日韩人妻无码久久不卡| 久久精品亚洲日本波多野结衣| 久久香蕉超碰97国产精品| 性做久久久久久免费观看| 久久久久亚洲精品中文字幕| 久久精品国产亚洲一区二区三区| 久久国产精品无码网站| 久久婷婷国产麻豆91天堂| 久久99国产精品尤物| 国产免费久久久久久无码| 国产精品久久久久影视不卡| 久久亚洲春色中文字幕久久久| 久久亚洲精精品中文字幕| 久久大香香蕉国产| 人人狠狠综合久久亚洲88|