西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)VC|VC++ → C++之父認(rèn)為C++有一個弱點兩大陷阱

C++之父認(rèn)為C++有一個弱點兩大陷阱

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:本站整理時間:2010/8/13 15:40:59字體大。A-A+

作者:佚名點擊:469次評論:0次標(biāo)簽: C++

ApexDC++V1.6.1 純凈安裝版
  • 類型:網(wǎng)絡(luò)共享大。62.0M語言:多國語言[中文] 評分:5.0
  • 標(biāo)簽:
立即下載

十年以來,Bjarne Stroustrup在不同的場合多次表示過,C++最大的弱點就是它的教學(xué),因此,他許諾要親自寫一本教授C++的書——不同于The C++ Programming Language那樣的、真正面向?qū)W習(xí)者的教程,來正本清源,以一種他認(rèn)為正確的方式來教C++。《C++程序設(shè)計原理與實踐》這本書就是他實現(xiàn)諾言的作品。

這本書并非零起點,對于完全沒有編程基礎(chǔ)的人來說,恐怕并不適合。從技術(shù)點的組織來看,也是一如Bjarne Stroustrup一直以來的風(fēng)格,以一種娓娓道來的方式分布在書中各個地方。光看目錄,你很難知道他會在哪里講到什么技術(shù)點。但如果讀者有一定基礎(chǔ), 知道編程是怎么回事,然后愿意以從頭到尾細(xì)細(xì)品讀的方式來學(xué)習(xí)C++,那么這本書應(yīng)該是不錯的選擇。但知識點的分散也有很大問題,也不是所有人都有那個耐 心從頭到尾精讀,所以這本書也不能取代其他一些經(jīng)典的C++書,比如可以當(dāng)字典查的C++ Primer和The C++ Standard Library,比如可以當(dāng)博客讀的Effective C++。但是有了這本書以后,學(xué)習(xí)C++的時候確實可以拿它當(dāng)主干,其他的作參考和補充。

為什么這么說呢?因為C++這個語言有個大陷阱,就是存在很多誘惑和可能性,很容易讓學(xué)習(xí)者早早就走到那些有趣的底層細(xì)節(jié)和奇技淫巧上,只見樹木 不見森林。比如你在一個類的設(shè)計階段就在考慮是否要讓它的某個成員函數(shù)內(nèi)聯(lián),或者本來要設(shè)計一個類,然后動手時成了一個模板類,重構(gòu)時變成了一個多參數(shù)模 板類,這都是疑似墜井的信號。實際上以今天C++語言的成熟程度來講,絕大多數(shù)情況下,程序員可以依賴高級的基礎(chǔ)設(shè)施完成工作,只在非常罕見的地方需要用 到高度技巧化和底層化的技術(shù)。因此,按理來說,一個C++學(xué)習(xí)者也應(yīng)該是先掌握這個語言的主體部分,然后才在必要的情況下進入細(xì)節(jié)的學(xué)習(xí)。這個應(yīng)該是正 途,也是這本書采取的思路。這本書講授C++的最大特色,就是把C++當(dāng)做一個真正高級的語言去講,從頭至尾充分調(diào)動了C++標(biāo)準(zhǔn)庫以及其他高級的基礎(chǔ)設(shè) 施。全書處理的非常平和,看不到技巧的炫耀和故作高深的叫賣,一切看上去都挺自然的。從C++自身的發(fā)展來講,這本書的出版,標(biāo)志著C++教學(xué)度過了長達 20年的青春期,進入了成熟期。

然而,就現(xiàn)實而言,這本書恐怕是來得太晚了。且不說C++的應(yīng)用領(lǐng)域較之十年前已經(jīng)大幅度萎縮了,即使是仍然在使用 C++的領(lǐng)域里,也早就充斥了大量的傳統(tǒng)遺留代碼。這些傳統(tǒng)的存在,強迫你必須按照奇技淫巧的方式來撰寫你自己的代碼,無論你多么不情愿。所以我不認(rèn)為這 本書,以及C++0X的標(biāo)準(zhǔn)能夠總體上改變C++應(yīng)用的現(xiàn)狀。悲觀點的說法是,C++到死,也就是這個樣了,難以有大的改觀。但是如果有人還是以很認(rèn)真很 嚴(yán)肅的態(tài)度來學(xué)習(xí)C++,也能夠有機會在一些領(lǐng)域來做一些全新的工作,這本書應(yīng)該是可以好好讀一下的。

很多人可能覺得C++不行了,我相信在未來一段時間里,C++還有一定的用武之地。云計算興起之后,服務(wù)端的競爭可能還會使得C++在某些領(lǐng)域復(fù) 興,所以C++還是可以學(xué)一學(xué)的。C++這個語言最好也是最差的地方,就是它萬金油,怎么寫都能工作,好多種風(fēng)格都支持,你用著用著總會有個好惡。比如對 我來說,C++這個語言最強的地方在于它的模板技術(shù)提供了足夠復(fù)雜的程序庫開發(fā)機制,可以把復(fù)雜性高度集中在程序庫里。做得好的話,在應(yīng)用代碼部分我連一 個for循環(huán)都不用寫,犯錯誤的機會就少,效率還不打折扣,關(guān)鍵是看著代碼心里爽。那么它最爛的地方是面向?qū)ο蠡A(chǔ)設(shè)施,簡直不入流,根本不配稱為面向?qū)?象語言。從高的層面來講,C++可以寫組件,但是想做周全了挺麻煩的,算不上好的組件語言。從底層來說,C++跟C差不多是完全兼容,狗急跳墻了,我可以 回去寫C代碼。別人可能有不同的看法,不過有一點經(jīng)驗的人,對于C++的長長短短多少都會有個感覺、有個偏愛。但是我現(xiàn)在覺得,用C++,最重要的一條, 就是心態(tài)平和,別較勁,別非要讓程序統(tǒng)一到某個你最信仰的風(fēng)格下,更不用為此花一大堆精力去攢包裝(wrapper),什么直接就用什么。你寫程序時第一 個想到的路子,也就是你讀程序時最容易理解的路子。用始皇帝張藝謀的話說,就是手中無劍,心中也無劍,就是不殺,就是和平。以前的C++程序員們,多少都 有些殺氣,有嗔念,要走過很久才回得來。也許這本書能夠幫助后來者比較快地獲得一顆平常心?沒準(zhǔn)兒。至少我希望是這樣。
 

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)