自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

你用C++踩過多少坑?編程業(yè)界大牛帶你了解真正的C++

新聞 前端
很多編程大牛對(duì)C++的感情波動(dòng)是:先是喜歡地要死,然后是恨地要死,最是的又愛又恨,愛的是這個(gè)語言,恨的是很多不合格的人在濫用和凌辱它。

C++的初衷

1)早期C++許多的工作是對(duì)于C的強(qiáng)化和凈化,并把完全兼容C作為強(qiáng)制性要求。C89、C99中許多的改進(jìn)正是從C++中所引進(jìn)??梢?,Stroustrup對(duì)C語言的貢獻(xiàn)非常之大。今天不管你對(duì)C++怎么看,C++的確擴(kuò)展和進(jìn)化了C,對(duì)C造成了深遠(yuǎn)的影響。

2)在C++兼容C的過程中遇到了不少設(shè)計(jì)實(shí)現(xiàn)上的麻煩;以及守舊的K&R C程序員對(duì)Stroustrup的批評(píng)。很多人說C++的惡夢(mèng)惡夢(mèng)就是要去兼容于C,這并不無道理(Java就干的比C++徹底得多),但這并不是Stroustrup考慮的,Stroustrup一邊在使盡渾身解數(shù)來兼容C,另一方面在拼命地優(yōu)化C。

3)C++***的競(jìng)爭(zhēng)對(duì)手正是C,他的目的就是——C能做到的,C++也必須做到,而且要做的更好。大家覺得是不是做到了?有多少做到了,有多少還沒有做到?

4)對(duì)于同時(shí)關(guān)注的運(yùn)行效率和開發(fā)效率的程序員,Stroustrup多次強(qiáng)調(diào)C++的目標(biāo)是——“在保證效率與C語言相當(dāng)?shù)那闆r下,加強(qiáng)程序的組織性;能保證同樣功能的程序,C++更短小”,這正是淺封裝的核心思想。而不是過渡設(shè)計(jì)的OO。(參看:面向?qū)ο笫莻€(gè)騙局)

5)《C++演化和設(shè)計(jì)》這本書中舉了很多例子來回應(yīng)那些批評(píng)C++有運(yùn)行性能問題的人。C++在其第二個(gè)版本中,引入了虛函數(shù)機(jī)制,這是C++效率***的瓶頸了,但我個(gè)人認(rèn)為虛函數(shù)就是多了一次加法運(yùn)算,但讓我們的代碼能有更好的組織,極大增加了程序的閱讀和降底了維護(hù)成本。(注:Lippman的《深入探索C++對(duì)象模型》也說明了C++不比C的程序在運(yùn)行性能低。Bruce的《Think in C++》也說C++和C的性能相差只有5%)

6)這本書中還講了一些C++的痛苦的取舍,印象最深的就是多重繼承,提出,拿掉,再被提出,反復(fù)很多次,大家在得與失中不斷地辯論和取舍。這個(gè)過程讓我***的收獲是——a) 對(duì)于任何一種設(shè)計(jì)都有好有壞,都只能偏重一方,b) 完全否定式的批評(píng)是不好的心態(tài),好的心態(tài)應(yīng)該是建設(shè)性地批評(píng)。

[[211870]]

C++有多少坑

個(gè)人覺得C++的坑其實(shí)并不多,因?yàn)镃++太靈活了,想怎么搞就怎么搞,所以,各種不經(jīng)意地濫用和亂搞。某些人C和C++都沒學(xué)好,大多數(shù)人用C++寫C,所以,C的坑和C++的坑合并了。如果你能花兩到三周的時(shí)候讀一下《Effecitve C++》里的那50多個(gè)條款,你就知道C++里的坑并不多,而且,有很多條款告訴我們C++是怎么解決C的坑的。然后,你可以讀讀《Exceptional C++》和《More Exceptional C++》,你可以了解一下C++各種問題的解決方法和一些常見的經(jīng)典錯(cuò)誤。

C++在解決了很多C語的坑的同時(shí),也因?yàn)镺O和泛型又引入了一些坑。消一些,加一些,我個(gè)人感覺上總體上只比C多10%左右吧。但是你有了開發(fā)速度更快,代碼更易讀,更易維護(hù)的500%的利益。

C++的編譯對(duì)標(biāo)準(zhǔn)C++的實(shí)現(xiàn)各異,支持地也千差萬別,所以會(huì)有一些比較奇怪的問題,但是如果你一般用用C++的封裝,繼承,多態(tài),以及namespace,const, refernece, inline, templete, overloap, autoptr,還有一些OO 模式,并不會(huì)出現(xiàn)奇怪的問題。

而對(duì)于STL中的各種坑,我覺得是程序員們還對(duì)GP(泛型編程)理解得還不夠,STL是泛型編程的***實(shí)踐!屬于是大師級(jí)的作品,一般人很難理解。必需承認(rèn)STL寫出來的代碼和編譯錯(cuò)誤的確相當(dāng)復(fù)雜晦澀,太難懂了。這也是C++的一個(gè)詬病。

C++是一門很恐怖的語言,而比它更恐怖的是很多不合格的程序員在使用著它。

很多編程大牛對(duì)C++的感情波動(dòng)是:先是喜歡地要死,然后是恨地要死,最是的又愛又恨,愛的是這個(gè)語言,恨的是很多不合格的人在濫用和凌辱它。

C++的未來

C++語言發(fā)展大概可以分為三個(gè)階段(摘自Wikipedia):

  • ***階段:

    這一階段C++語言基本上是傳統(tǒng)類型上的面向?qū)ο笳Z言,并且憑借著接近C語言的效率,在工業(yè)界使用的開發(fā)語言中占據(jù)了相當(dāng)大份額;

  • 第二階段:

    這一階段由于標(biāo)準(zhǔn)模板庫(STL)和后來的Boost等程式庫的出現(xiàn),泛型程式設(shè)計(jì)在C++中占據(jù)了越來越多的比重性。當(dāng)然,同時(shí)由于Java、C#等語言的出現(xiàn)和硬件價(jià)格的大規(guī)模下降,C++受到了一定的沖擊;

  • 第三階段:

    以Loki、MPL等程式庫為代表的產(chǎn)生式編程和模板元編程的出現(xiàn),C++出現(xiàn)了發(fā)展歷史上又一個(gè)新的高峰,這些新技術(shù)的出現(xiàn)以及和原有技術(shù)的融合,使C++已經(jīng)成為當(dāng)今主流程式設(shè)計(jì)語言中最復(fù)雜的一員。

在《Why C++? 王者歸來》中說了 ,性能主要就是要省電,省電就是省錢,在數(shù)據(jù)中心還不明顯,在手機(jī)上就更明顯了,這就是為什么Android 支持C++的原因。所以,在NB的電池或是能源出現(xiàn)之前,如果你需要注重程序的運(yùn)行性能和開發(fā)效率,并更關(guān)注程序的運(yùn)性能,那么,應(yīng)該*** C++。這就是iOS開發(fā)也支持C++的原因。

今天的C++11中不但有更多更不錯(cuò)的東西,而且,還填了更多原來C++的坑。

你用C++踩過多少坑?編程業(yè)界大牛帶你了解真正的C++

總結(jié)

C++并不***,但學(xué)C++必然讓你受益無窮。是那些不合格的、想對(duì)編程速成的程序員讓C++變得坑多。

責(zé)任編輯:張燕妮 來源: C語言編程
相關(guān)推薦

2015-03-03 13:22:15

50條C++編程學(xué)習(xí)建議

2020-12-07 10:42:22

VScodeC++

2011-07-10 15:26:54

C++

2011-05-30 15:29:32

C++

2023-10-30 10:29:50

C++最小二乘法

2010-01-12 17:33:06

C++

2024-04-03 12:30:00

C++開發(fā)

2025-04-29 08:30:00

迭代器失效C++編程

2010-01-12 10:40:22

C++程序員

2010-01-26 17:11:13

C++編程

2009-11-12 10:05:09

Visual C++

2018-05-15 11:14:07

面試官C++編程

2010-01-21 09:34:57

C++語法

2010-01-27 16:05:06

C++堆棧

2010-01-21 14:07:14

CC++聲明

2010-01-26 15:51:06

C++變量

2010-01-28 13:45:06

C++數(shù)組

2023-06-09 09:36:31

C++程序員語言

2024-03-13 08:52:43

C++初始化方式

2009-10-22 09:17:16

C++ CLR
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)