C++和C#、Java的區(qū)別集中總結(jié)
作為比C語言更簡捷的語言,C++語言提供了更好的機制來增強程序的安全性,C++編譯器具有嚴格的類型安全檢查功能,它幾乎能找出程序中所有的語法問題,這方面大大的幫助了開發(fā)人員。
總的來說,C++和C#、Java的區(qū)別集中在以下幾點:
(1)C#、Java代碼編譯后(形成中間代碼)是在虛擬機上執(zhí)行的。C++則不是。
(2)C#、Java語言相對于C++語言來說較為簡單,比較容易上手。C++的語法特性多、復(fù)雜,較難掌握。
(3)C++語言本身是一個標準,各種實現(xiàn)之間有區(qū)別,對標準的理解、執(zhí)行程度也不同。而C#、Java語言是由商業(yè)公司掌握的,在這方面很少有問題。
(4)C#、Java是直接面向應(yīng)用的,各種標準、模型都很成熟。而C++的各種庫在不同的C++編譯器實現(xiàn)上可能遇到一些問題。
(5)三者都是面向?qū)ο蟮?。C#、Java比C++更為徹底一些。有觀點認為C#、Java是徹底地面向?qū)ο蟮恼Z言,這種說法不妥,因為對于面向?qū)ο蟮恼Z言,并沒有一個特定的標準,例如也有觀點認為最近很流行的Ruby語言比C#、Java更加面向?qū)ο蟆?t#
(6)C++擁有很多現(xiàn)代的、令人激動的語言特性,例如模板、泛型編程等。在這一點上,C#和Java也在迅速跟進。
C++是一門精致的、藝術(shù)的編程語言。
筆者認為,C++也是所有已知程序設(shè)計語言中最靈活、最難學(xué)的語言之一。學(xué)好C++基本上也意味著可以學(xué)好任一種其他的高級程序設(shè)計語言。圖1.1對C、C++、C#、Java這4種語言的幾個方面做了比較。
在介紹C++語言的主要應(yīng)用領(lǐng)域之前,可以先介紹C++語言的使用者情況。C++語言之父Bjarne Stroustrup博士在一次關(guān)于C++的討論中提到:“C++在經(jīng)過前10年(1985-1994)的爆炸性增長之后,后10年(1995-2004)的使用人數(shù)一直在穩(wěn)定地增長?!?/P>
事實上,就筆者的周圍環(huán)境來看,也的確如此,雖然這個增長的速度沒有Java等語言快,但是使用C++的程序員人數(shù)仍然在增長。這說明,C++語言仍然跟得上“潮流”,仍然能夠滿足程序員和實際應(yīng)用的需要。目前,在Web開發(fā)上,C++沒有多大的市場。
在企業(yè)級的應(yīng)用上,以Java、.NET(C#是其中重要的一員)居多,C++仍然占有一席之地。在系統(tǒng)級的開發(fā)上,C/C++應(yīng)用居多。這3種語言各有特色。總的來說,C++的應(yīng)用集中在如下主要領(lǐng)域。