青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

huaxiazhihuo

 

非理性擁護(hù)C++

        本來只想對C++贊嘆復(fù)贊嘆,后來就失控了,接著情緒化了,最后終于開始爆走,語無倫次。
        平心而論,C的而且確小巧精致,一切通通透透。老夫真心喜歡用它來編碼,但一旦動用真格了,就立馬葉公好龍,就會懷念C++的種種好處,class、 template、 virtual、 析構(gòu)函數(shù)、甚至異常、const、引用等等,原來,離開了之后,才明白你的種種美妙動人之處,因此,朕已決定,有生之年,假如還在編碼,那么C++,在心目中的,將是無可替代,它的一切,即便缺點(diǎn),也是那么地令人回味無窮。因?yàn)樗囊磺校瑢⒆杂韶瀼氐降祝浞肿鹬赜脩舻倪x擇,不輕易剝奪用戶的權(quán)利,更不強(qiáng)求用戶用什么樣的方式做設(shè)計。所謂自由的世界,獨(dú)立的人格,手持C++利器,雖不敢說橫行天下,但起碼能愉快地編碼。只有C++,當(dāng)一個人獨(dú)立使用,如此的耐人尋味,歷久常新。多人一塊開發(fā),簡直是大災(zāi)難,沒必要的封裝,種種自制的破爛輪子(前幾年,出自本座手中的輪子不計其數(shù),基本上慘不忍睹),錯綜復(fù)雜,交叉引用的類關(guān)系。這在其他語言中難以出現(xiàn)的怪現(xiàn)象,在C++中,平常得很,再一次證明了C++的博大精深,包羅萬象。不說別的,就說C++中的最負(fù)盛名GUI框架MFC,其類層次的設(shè)計,糟糕透頂,而BCG的代碼注入,毫無創(chuàng)意,笨拙無比的命名,垃圾般狗屎般的代碼堆積,可怕的內(nèi)存消耗,令人眼界大開,MFC的資源消耗已經(jīng)夠厲害,相比之下,居然顯得那么節(jié)儉,而用BCG開發(fā)界面,居然比C#又或者JAVA做出來的軟件,還不卡,這一切,都證明了C++過人之處。愛死你了,C++。
          近幾年來看到某些人不知出于何因,對C++橫加指責(zé),說什么論效率不如C,論高級特性又不如其他的動態(tài)語言,實(shí)在莫明奇妙。說什么C++中的inline、繼承、template破壞了模塊的分離,“用C語言1000行源碼能完成的工作千萬不要用C++重寫!”,實(shí)則用C++來寫根本就無須1000行,并且可以精簡那些字?jǐn)?shù)多的代碼行,并且還更加易讀易懂,更加容易維護(hù),效率或許還能更快一點(diǎn)點(diǎn),得益于內(nèi)聯(lián)。如果還覺得用C++寫1000行代碼沒有C那么漂亮,那只證明閣下沒能力駕馭C++,請不要對C++亂加指責(zé)。他們那些所謂的C高手的代碼,到處指針飛舞,又長又臭一再重復(fù)的表達(dá)式(本該內(nèi)聯(lián)大顯身手),著實(shí)讓人難受,當(dāng)然,不否認(rèn)他們的精妙設(shè)計。
        縱觀他們對C++非議之例子,無一不暴露出其設(shè)計上的缺陷,本該成員函數(shù)指針大顯伸手,他們卻用上了虛函數(shù);Template模式的函數(shù)(順序依次,調(diào)用幾本虛函數(shù)),本該做成全局函數(shù),硬是整成員函數(shù);多繼承中的鉆石抽象基類不該有任何東西,他們卻偏要放某些東西,最后沒辦法,在虛繼承中糾結(jié)。……所有這一切根本無損于C++,卻只顯現(xiàn)出他們的愚蠢與無知。想展現(xiàn)自己也言行獨(dú)立,到頭來卻做出拾人牙蠢之事。其實(shí),他們更應(yīng)該感謝C++,是C++的包容,才容許了如此丑陋的設(shè)計。本座平生最不齒這群宵小,自己毫無主見,風(fēng)聞名人幾句驚世駭俗之話語,就跟著瞎起哄,國人的毫無道理的盲目跟風(fēng),由來已久,也不必細(xì)表了。那些所謂的C高手,覺得用C能做出精妙的設(shè)計,為何用起C++就不行了,其實(shí)他們大可“用C做設(shè)計,用C++編碼”,這樣,根本就不會影響他們的偉大杰作構(gòu)思。
并且要做到如同C那樣的高效,C++中完全沒有問題,完全可以放下身段,將C++的抽象降低到C那樣的級別,在沒有獨(dú)立完整的概念之前,或者是沒有很好的理由,絕不用類來封裝代碼,禁用慎用C++的一切高級特性,好比虛函數(shù)、繼承、異常等。任何語言特性都可以寫出垃圾代碼,也容易用得不好,但不可因?yàn)檫@樣,就否定此種特性的價值。特性作用越大,就越微妙,就越容易濫用誤用。即此而觀,C++中,應(yīng)該以class最為難用,此關(guān)一過,必定神清氣爽。
的確,C中,你可以也必須面對一切細(xì)節(jié),在這種惡劣的環(huán)境下,手上能用的武器,也只有函數(shù)、結(jié)構(gòu)體、數(shù)組和宏,程序員的潛能就這樣被迫出來,爆發(fā)出來了,做出最合乎本質(zhì)的設(shè)計,而這幾樣簡單武器,互相組合,居然可以用得如此出神入化,其效果鬼斧神工,巧奪天工,直可驚天地,泣鬼神,手法更是精彩繽紛,巧妙絕倫,令人目不接暇,但是,不管如何,始終缺乏管理細(xì)節(jié)的有效武器。
       鄙人最驚嘆C++的一強(qiáng)悍之處,對于各種匪夷所思的變態(tài)問題,會有更加變態(tài)的解決方式,而且還不止一兩種,更可見其靈活多變自由豐富的個性,但眾多迥異特性又能如此和諧的共存,為什么?竊以為C++是強(qiáng)類型的靜態(tài)語言,雖然提供多種語言工具以讓碼農(nóng)愉快輕松地編碼,盡可能地在編譯時期發(fā)現(xiàn)更多錯誤,各種微妙的語言特性不過是為了幫助碼農(nóng)愉快高效地編碼,少出錯,他們可以用這些語言工具整理組織C的各種凌散的表達(dá)式。
因?yàn)镃中雖然能直面一切細(xì)節(jié),卻缺乏管理細(xì)節(jié)的語言工具。所有C中的細(xì)節(jié),幾乎可通過C++的各種豐富特性妥善整理,而效率的損失又甚少,并且,在其強(qiáng)大的靜態(tài)系統(tǒng)的分析,能多發(fā)現(xiàn)點(diǎn)問題。但是強(qiáng)類型只是工具而已,必須善加利用,但C++的碼農(nóng)不會受束縛,必要的時候,大可突破。鄙人就曾經(jīng)實(shí)現(xiàn)了一個微型的動態(tài)系統(tǒng),對象之間沒有用層次關(guān)系,都是平等的,但之間又能互相組合裝配拆除,達(dá)到多繼承的效果,又沒有多繼承的各種問題。雖然語法上別扭點(diǎn),但習(xí)慣了就感覺挺不錯。
       要看到C++的對C代碼的變態(tài)重組,為此,隨便舉例,qsort是代碼上的典范境界,能排序所有的數(shù)組,只要提供了元素之間的比較函數(shù),就能快速地排序,實(shí)至名歸。但它是弱類型,其正確性全靠程序猿手工輸入,參數(shù)出錯了,編譯器也檢查不出來,當(dāng)然C高猿不大容易出錯。只是,依賴于C++強(qiáng)大類型推導(dǎo)威力,通過template整成以下樣子,既不限制qsort的包容性,又不損失任何一點(diǎn)點(diǎn)效率
template<typename _Ty>
inline void Sort(_Ty* pItems, size_t nItemCount, int (__cdecl* funcCompare)(const _Ty&, const _Ty&))
{
    int (__cdecl * _PtFuncCompare)(const void *, const void *);
    union_cast(_PtFuncCompare, funcCompare);    // 為忽弄編譯器的強(qiáng)類型檢查
    qsort(pItems, nItemCount, sizeof(_Ty), _PtFuncCompare);
}
 但已經(jīng)是強(qiáng)類型的了,C++猿用起來就不大容易出錯了,并且元素的比較函數(shù)也更加容易編寫,沒必要再用指針了,個人而言,引用比指針好,最起碼少敲一下鍵盤,那行代碼的長度可減少了一個字符。這樣,用起來不是更爽嗎?
      又好比消息循環(huán),判斷消息類型,一遍又一遍地寫著重復(fù)的表達(dá)式,好比,msg.message==WM_LBUTTONDOWN,不好玩,干脆class一CMsg,繼承自MSG。好比這樣:
class CMsg : public MSG
{
public:
    bool Is(DWORD nMsg) const{ return message==nMsg; }
};
         于是以上的那行判斷語句,就精簡成msg.Is(WM_LBUTTONDOWN),感覺應(yīng)該好點(diǎn)吧。這兩例的代碼整理手段,對C++來說稀松平常,但C中就做不出來了,大概也只能用宏了,但宏的問題,大家也知道。
        又有人說,C++高手的修成要經(jīng)過兩次轉(zhuǎn)換,從C到C++,然后從C++回復(fù)C,實(shí)在異想天開,不值一曬,舍棄C++的強(qiáng)大類型檢查,欲與一切細(xì)節(jié)肉博,吾不見其高明。這不是什么C++高手,充其量也只是C高手,其苦心孤詣在C中模仿C++的面向?qū)ο蟮募總z,用C++來表達(dá),不過小菜一碟,并且還不失強(qiáng)類型檢查,必要時,只須用聯(lián)合體或類型轉(zhuǎn)換忽悠編譯器。那些回歸C的高猿的C++代碼,其實(shí),不甚精致。所以,大家也不必理會。只須老老實(shí)實(shí)地做出簡簡單單的設(shè)計,然后再用C++組織管理各種細(xì)節(jié),大可將代碼寫得漂漂亮亮干干凈凈。
         要謹(jǐn)記的是,只用那些熟悉有把握的語言特性,對于每一個用到的C++關(guān)鍵字,一定要清楚其背后的機(jī)制并且由此所帶來的各種副作用。最難用的就是class了,毫無必要的封裝, 比赤裸裸的代碼更加丑陋,請優(yōu)先選擇非成員函數(shù)。封裝的出現(xiàn),是因?yàn)榇a的一再重復(fù)出現(xiàn)的需要,而并非想當(dāng)然地推理演繹。只要是重復(fù)代碼,不管是一行表達(dá),連續(xù)多行,分散跨行,都可以給予包裝在一起,只需一個函數(shù)調(diào)用。
          再次重溫C++的核心設(shè)計,盡可能利用靜態(tài)強(qiáng)類型,盡可能地在編譯期中找出程序的錯誤,提供多種豐富特性,協(xié)助碼農(nóng)充分地發(fā)揮強(qiáng)類型的一切優(yōu)點(diǎn),對抗一切細(xì)節(jié),對抗一切重復(fù)代碼,并且不必付出任何不必要的代價。當(dāng)然,強(qiáng)類型只是忠實(shí)的奴仆,完全不必因?yàn)樗w就你的設(shè)計,想要忽悠它,方法多種多樣。 有人說,C++的語言特性太凌散,不系統(tǒng),好像打補(bǔ)丁似的。但鄙人覺得挺好的,特性分散,各自為政,可隨意自由組合,你討厭某個特性,大可不必理睬,它就靜靜地站在一旁,絲毫不影響你的代碼,這不就是設(shè)計的最高境界嗎。
        好了,終于狠狠地出了口惡氣。在下承認(rèn)很情緒化,有失高手風(fēng)范。

posted on 2012-11-21 12:00 華夏之火 閱讀(2712) 評論(16)  編輯 收藏 引用 所屬分類: c++技術(shù)探討

評論

# re: 非理性擁護(hù)C++ 2012-11-21 13:55 fzy

我只是不喜歡C++的標(biāo)準(zhǔn)在各種實(shí)現(xiàn)上的片面化,和某些問題解決方法的各種實(shí)現(xiàn)的差異化。
其他的C++確實(shí)很好。
  回復(fù)  更多評論   

# re: 非理性擁護(hù)C++ 2012-11-21 15:54 歲月漫步

你是高手  回復(fù)  更多評論   

# re: 非理性擁護(hù)C++ 2012-11-21 19:39 人貴有自知之明


可笑可嘆!幾斤幾兩,是人則貴有自知之明!
  回復(fù)  更多評論   

# re: 非理性擁護(hù)C++[未登錄] 2012-11-21 20:02 123

說得好!C++是C的擴(kuò)充,關(guān)鍵在于使用,覺得不好的東西不用就行了  回復(fù)  更多評論   

# re: 非理性擁護(hù)C++[未登錄] 2012-11-21 20:04 123

C++就是程序界中的獨(dú)孤九劍  回復(fù)  更多評論   

# re: 非理性擁護(hù)C++ 2012-11-21 21:13 marvin

c++最大問題就是
不把主要精力解決產(chǎn)業(yè)問題,而是自娛自樂玩那些自以為高手的東西

不象c,解決了產(chǎn)業(yè)最底層的問題

新的語言,象go,都是追求最簡單的東西完成功能  回復(fù)  更多評論   

# re: 非理性擁護(hù)C++ 2012-11-21 22:08 華夏之火

@fzy
的確,一不小心,c++就會變得很亂,現(xiàn)在到處一片混亂  回復(fù)  更多評論   

# re: 非理性擁護(hù)C++ 2012-11-21 22:09 華夏之火

@123
謝謝,其實(shí)說得不好,很情緒化  回復(fù)  更多評論   

# re: 非理性擁護(hù)C++ 2012-11-21 22:17 華夏之火

@marvin
C++的語言核心還是很好的,就是整個業(yè)界很奇怪,都不知大家都在干什么。感覺應(yīng)該是語言內(nèi)部沒有統(tǒng)一的表現(xiàn),c只要內(nèi)存二進(jìn)制兼容就好了,而其他語言,基本上一開始就統(tǒng)一了平臺,沒有那么多鬼鬼怪怪  回復(fù)  更多評論   

# re: 非理性擁護(hù)C++ 2012-11-21 22:19 華夏之火

@人貴有自知之明
都已經(jīng)說是非理性了,閣下又何必當(dāng)真  回復(fù)  更多評論   

# re: 非理性擁護(hù)C++[未登錄] 2012-11-22 09:35 春秋十二月

你的文筆有魯迅之風(fēng)  回復(fù)  更多評論   

# re: 非理性擁護(hù)C++ 2012-11-22 18:14 ooseven

c++最大的遺憾是沒有在不同平臺上出一個統(tǒng)一的編譯器,而讓微軟、開源賺錢組織(gcc)、apple等一幫商業(yè)公司把一些標(biāo)準(zhǔn)為完善的地方給碎片化了。造成了今天c++代碼無法通用的局面。
  回復(fù)  更多評論   

# re: 非理性擁護(hù)C++ 2012-11-23 21:01 其實(shí)俺不是壞人

@ooseven
歷史問題,先有多個C++編譯器,才有C++標(biāo)準(zhǔn)。所以標(biāo)準(zhǔn)才有那么多未定義行為、實(shí)現(xiàn)者自定義。C也一樣,各種副作用。  回復(fù)  更多評論   

# re: 非理性擁護(hù)C++ 2012-11-23 23:19 華夏之火

@ooseven
c++本身也太復(fù)雜太自由了,對于同一個問題,總有很多種不同解決方法,并且每一種都有其存在的理由  回復(fù)  更多評論   

# re: 非理性擁護(hù)C++ 2012-11-23 23:21 華夏之火

@其實(shí)俺不是壞人
c的副作用相對來說沒那么變態(tài),只是細(xì)節(jié)太繁瑣了,缺乏有效的語言工具來組織細(xì)節(jié)  回復(fù)  更多評論   

# re: 非理性擁護(hù)C++[未登錄] 2012-11-26 11:52 123

@ooseven
語法層面只要不用一些特偏的東西,沒啥問題.
和系統(tǒng)相關(guān)的東西本來就沒法通過編譯器來統(tǒng)一,只能用庫封裝.
mac系統(tǒng)不清楚,msvc和linux gcc還是很容易用一套代碼的  回復(fù)  更多評論   

導(dǎo)航

統(tǒng)計

常用鏈接

留言簿(6)

隨筆分類

隨筆檔案

搜索

積分與排名

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久青草欧美一区二区三区| 亚洲全黄一级网站| 欧美国产精品一区| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲人成网在线播放| 欧美激情五月| 亚洲精品免费在线观看| 99精品视频免费全部在线| 日韩系列在线| 亚洲欧美日韩国产一区二区三区| 亚洲专区一区二区三区| 久久久久女教师免费一区| 欧美大片一区| 国产日韩精品在线播放| 在线成人激情视频| 艳妇臀荡乳欲伦亚洲一区| 日韩一区二区精品视频| 欧美一级黄色录像| 欧美jizzhd精品欧美喷水| 91久久久久久久久| 亚洲午夜精品久久久久久app| 性xx色xx综合久久久xx| 欧美a级一区二区| 国产精品每日更新在线播放网址| 国产日韩欧美麻豆| 亚洲精品欧洲| 久久久久在线| 亚洲美女在线看| 亚洲综合首页| 欧美激情国产日韩| 国产在线一区二区三区四区| 亚洲激情二区| 久久精品女人| 在线综合欧美| 欧美成人蜜桃| 国产一区二区无遮挡| 一本色道久久综合亚洲91| 久久九九精品99国产精品| 99国产精品国产精品久久| 久色成人在线| 国产亚洲精品aa午夜观看| 亚洲一区二区三区色| 欧美成人精品一区二区| 亚洲欧美日韩国产精品 | 亚洲一区久久久| 美女主播一区| 亚洲男人的天堂在线观看| 欧美精品激情| 91久久夜色精品国产网站| 久久精品一区二区| 亚洲一级片在线看| 欧美日韩激情网| 亚洲肉体裸体xxxx137| 欧美成人免费全部| 久久精品国产精品亚洲综合| 国产精品成人久久久久| 亚洲精品日韩在线| 亚洲国产精品久久人人爱蜜臀| 欧美伊人久久久久久午夜久久久久| 欧美日韩不卡在线| 亚洲精品一区二区三| 欧美xx视频| 老鸭窝亚洲一区二区三区| 国产九色精品成人porny| 欧美在线视频免费观看| 欧美一区二区三区视频在线| 国产三区精品| 欧美一区二区三区婷婷月色| 亚洲少妇诱惑| 国产美女精品人人做人人爽| 亚洲影视中文字幕| 亚洲一区免费观看| 国产精品视频免费| 欧美在线播放高清精品| 欧美一区二区啪啪| 亚洲国产精品成人| 亚洲国产成人tv| 久久夜色精品国产| 国产综合欧美| 亚洲国产经典视频| 欧美欧美全黄| 亚洲欧美日韩一区二区在线| 欧美一区二区三区精品| 伊人狠狠色丁香综合尤物| 亚洲国产另类精品专区| 国产精品wwwwww| 久久久久久欧美| 欧美电影在线播放| 日韩一级黄色大片| 一区二区三区日韩精品| 国产欧美不卡| 欧美大秀在线观看| 欧美体内she精视频| 欧美一区二区三区视频在线| 久久综合网络一区二区| 亚洲天堂成人| 久久精品人人做人人爽| 亚洲人成在线观看网站高清| 一区二区日韩免费看| 国产在线视频欧美| 一区二区三欧美| 亚洲欧洲日本mm| 亚洲欧美国产精品专区久久| 国产一区二区观看| 久久久久久久成人| 欧美成人久久| 噜噜噜91成人网| 精品动漫av| 一区二区欧美国产| 久久久久久久国产| 在线观看av不卡| 欧美高清在线一区| 一本色道久久综合亚洲精品小说 | 另类国产ts人妖高潮视频| 亚洲欧洲日产国产综合网| 亚洲一区欧美一区| 一本一本久久| 欧美sm视频| 麻豆精品在线视频| 国产一区二区三区最好精华液| 亚洲桃花岛网站| 亚洲天堂久久| 欧美日韩亚洲不卡| 亚洲精品综合久久中文字幕| 亚洲黄色一区| 蜜桃av噜噜一区二区三区| 久久亚洲春色中文字幕久久久| 国产精品久久久久久久久果冻传媒| 亚洲国产欧洲综合997久久| 韩国视频理论视频久久| 欧美一区二区福利在线| 亚洲专区在线| 欧美三区在线观看| 亚洲三级电影在线观看| 亚洲丰满在线| 久久综合伊人77777蜜臀| 嫩草成人www欧美| 黄色在线成人| 久久久久久久成人| 免费av成人在线| 亚洲国产老妈| 久久这里只有| 欧美 日韩 国产精品免费观看| 国产亚洲一区在线| 欧美一区二区三区免费视频| 久久久久一区二区| 在线国产精品播放| 久久性天堂网| 亚洲国产影院| 亚洲一级黄色av| 国产伦精品一区二区三区免费 | 亚洲欧美日韩在线不卡| 国产精品大片| 翔田千里一区二区| 免费观看国产成人| 99国产精品久久久久久久久久| 久久精品夜色噜噜亚洲a∨| 黄色在线一区| 午夜精品亚洲| 玖玖综合伊人| 91久久国产自产拍夜夜嗨| 鲁大师成人一区二区三区| 亚洲激情av在线| 亚洲一区二区三区精品在线| 国产一区二区三区高清| 免费久久99精品国产自在现线| 欧美第十八页| 中国av一区| 韩国精品主播一区二区在线观看| 欧美3dxxxxhd| 亚洲欧美激情视频| 欧美国产日韩a欧美在线观看| 在线性视频日韩欧美| 国产一区二区视频在线观看 | 久久精品在这里| 亚洲精选视频在线| 国产免费亚洲高清| 欧美高清一区二区| 亚洲欧美一区二区三区极速播放 | 亚洲伊人伊色伊影伊综合网| 久久视频精品在线| 日韩视频在线观看| 国产农村妇女精品| 欧美日韩精品一区| 麻豆精品网站| 午夜一区在线| 亚洲日本精品国产第一区| 国产精品99久久久久久久久久久久 | 伊人久久亚洲美女图片| 欧美另类在线观看| 欧美一区二区三区的| 亚洲精品乱码久久久久久蜜桃麻豆 | 中文国产成人精品| 亚洲国产欧美一区| 国产一区视频网站| 国产精品亚洲产品| 欧美午夜在线| 欧美精品色综合| 欧美成人网在线| 久久天堂精品|