成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++語言是否跨平臺?

開發 后端
C++語言是一個國際標準,要在C++中加入這些語言之外的、面向應用的特性還需要很長一段路要走,好了下面進行詳細說明。

Java的程序如果想要運行,必須在虛擬機上運行的,而C++語言不是,C++程序的代碼是直接運行在物理機器上的,所謂的C++語言:是一種使用非常廣泛的計算機編程語言。。

C#更像是微軟公司和SUN公司進行商業斗爭的產物。歷史上,微軟公司是支持過Java語言的,代表性的產品有Visual J++和WFC。后來因為眾所周知的原因,微軟公司推出了C#,其目的很明確,就是和Java競爭。

實際上C#和Java在特性上也非常類似(不僅僅是語法)。二者都是為了更加方便地解決應用問題,在GUI、數據庫訪問、網絡通信、多線程等和實際應用密切相關的點上都有成熟的解決方案。

C++更多地靠第三方的庫來實現這些功能,因為C++語言是一個國際標準,要在C++中加入這些語言之外的、面向應用的特性還需要很長一段路要走。而C#、Java的擁有者是商業化公司,各種動作自然要敏捷得多。

但是這并不意味著C++即將消亡(這樣的言論很多)。不可否認的是C++在C#、Java的進攻下,丟失了一些領域,但是C++仍然在普遍使用,很重要的原因就是因為C++既保持了C語言級別的效率(某些情況下例外),又加入了面向對象的特性。

C++與其他語言的主要區別

總的來說,C++和C#、Java的區別集中在以下幾點:
(1)C#、Java代碼編譯后(形成中間代碼)是在虛擬機上執行的。C++則不是。

(2)C#、Java語言相對于C++語言來說較為簡單,比較容易上手。C++的語法特性多、復雜,較難掌握。

(3)C++語言本身是一個標準,各種實現之間有區別,對標準的理解、執行程度也不同。而C#、Java語言是由商業公司掌握的,在這方面很少有問題。

(4)C#、Java是直接面向應用的,各種標準、模型都很成熟。而C++的各種庫在不同的C++編譯器實現上可能遇到一些問題。

(5)三者都是面向對象的。C#、Java比C++更為徹底一些。有觀點認為C#、Java是徹底地面向對象的語言,這種說法不妥,因為對于面向對象的語言,并沒有一個特定的標準,例如也有觀點認為最近很流行的Ruby語言比C#、Java更加面向對象。

(6)C++擁有很多現代的、令人激動的語言特性,例如模板、泛型編程等。在這一點上,C#和Java也在迅速跟進。C++是一門精致的、藝術的編程語言。筆者認為,C++也是所有已知程序設計語言中最靈活、最難學的語言之一。學好C++基本上也意味著可以學好任一種其他的高級程序設計語言。圖1.1對C、C++、C#、Java這4種語言的幾個方面做了比較。

首先重復一句Bjarne的話:“我們的系統已經是極度復雜的了,為了避開C++的復雜性而干脆不用C++(Linus的做法),無異于因噎廢食。”在所有可用C和C++的領域,C++都是比C更好的語言。當我說“更好的”時候,我說的是C++擁有比C更安全的類型檢查、更好的抽象機制、更優秀的庫。當然,凡事都有例外,如果你做的項目1)不大。2)編碼中用不到什么抽象機制。

甚至ADT(抽象數據類型,例如std::complex這種不含多態和繼承的)也用不到,RAII也用不到,異常也用不到。3)你連基礎庫(如,簡化資源管理的智能指針、智能容器)都用不著。那么也許你用C的確沒問題;所以如果你的情況如此,不用和我爭論,因為我無法反駁你。我們這里說的領域大致是Bjarne在“C++應用列表”里面列出來的那些地方。

底線是:如果把C++中的諸多不必要的復雜性去掉,留下那些本質的,重要的語言特性,簡化語言模型,消除歷史包袱。即便是C++的反對者也許也很難找到理由說“我還是不用C++”。在我看來,一個真正從實踐意義上理性反對使用C++的人只有一個理由:C++的復雜性帶來的混亂抵消乃至超過了C++的抽象機制和庫(在他的特定項目中)帶來的好處。

值得注意的是,這里需要避免一個陷阱,就是一旦人們認定了“C++不好”,那么這個理由就會“長出自己的腳來”,即,就算我們拿掉C++的復雜性,他們可能也會堅持還是不用C++語言,并為之找一堆理由。

我假定你不是這樣的人。不過,也許最可能的是他會說:“問題是我們今天用的C++并非如此(簡潔),你的假設不成立。”是的,我的假設不成立。但雖然我們無法消除復雜性,我們實際上是可以容易地避開復雜性,避短揚長的。這也是本文的要點,容我后面再詳述。

當然,到現在你可能還是會說。我還是不用C++語言,因為我可以用D;或者如果你本來做的項目就不需要C++,你則可能會說,我用Python。首先,如果你的項目能用Java/Python乃至Ruby做,那么用C++是自討苦吃。

因為能用那些語言代表你的項目在效率上本身要求就不高,那么用一門效率上討不到太大好處,復雜性上卻綽綽有余的語言,有什么價值呢?其次,如果你的項目效率是很重要的,你可能會說可以用D。

然而現實是D在工業界尤其是國內被運用得非常少,幾乎沒有。而C++語言卻有大量的既有代碼,已經使用C++去做他們的產品的公司,在很長一段時間之內幾乎是不可能用別的語言重寫代碼的,正如Joel所說,決定重寫一個非平凡的代碼基==自殺。

【編輯推薦】

  1. 簡介學習C++總結之談
  2. 對C++庫函數進行學習探索總結筆記
  3. C++類庫設計的基本構思與方法
  4. C++語言真的還有市場價值?
  5. C++類庫設計的基本構思與方法
責任編輯:chenqingxiang 來源: 計世網
相關推薦

2010-02-24 09:45:10

Linux CC++

2010-02-01 10:43:10

C++跨平臺應用

2022-04-22 15:06:59

C++PythonJava

2010-01-15 17:38:37

C++語言

2010-01-13 17:04:36

C++語言

2010-01-14 10:23:08

C++語言

2010-01-26 10:27:43

C++語言

2021-05-07 08:00:19

應用程序框架

2022-04-18 12:29:18

C++

2010-01-14 10:34:02

C++語言

2010-01-15 14:46:20

C++語言

2010-01-15 10:22:24

C++語言

2010-01-18 09:39:25

C++語言

2010-01-18 16:27:26

C++語言

2010-01-22 15:30:36

C++語言

2010-01-14 17:02:10

學習C++

2010-01-21 16:08:26

C++語言

2021-03-30 11:33:03

C語言頭文件開發

2010-01-14 09:27:44

C++語言

2010-01-21 16:18:06

C++語言
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产aa| 欧美日韩久久久久 | 免费福利视频一区二区三区 | 亚洲精品久久久久久久久久吃药 | 天天亚洲| 欧美国产视频 | 国产精品视频久久久久久 | 91免费在线视频 | 日韩www| 粉嫩在线 | 日韩a视频 | 久久精品日产第一区二区三区 | 色播视频在线观看 | 亚洲综合视频一区 | 欧美乱做爰xxxⅹ久久久 | 亚洲欧美一区二区三区1000 | 国产日屁| 日日干日日操 | 日韩高清成人 | 亚洲一区二区三区视频免费观看 | 亚洲国产精品99久久久久久久久 | 在线观看av网站永久 | 欧美色视频免费 | 欧美a级成人淫片免费看 | 天堂久久天堂综合色 | 日韩免费福利视频 | 国产精品免费观看视频 | 欧美乱码精品一区二区三区 | 欧美片网站免费 | 欧美性生交大片免费 | 成人精品国产免费网站 | 伦理午夜电影免费观看 | 久久国产日韩 | 免费久久久 | 国产电影精品久久 | 精品一区二区三区四区 | 国产高清av免费观看 | www亚洲免费国内精品 | 午夜精品久久久久久久99黑人 | 91原创视频| 国产一区二区在线免费观看 |