當前位置:編程學習大全網 - 編程語言 - C++11可能為C++發展帶來什麽影響

C++11可能為C++發展帶來什麽影響

C++11讓C++續寫傳奇

技術在不斷發展,C++也在不斷進步。自從斯大叔發明並實現了C++語言之後,在面向對象語言迅速發展的時代背景下,C++以其面向對象的語言特性、對C語言的良好兼容、以及極其接近C語言的性能效率,在工業界占據了相當大的份額,成為程序設計語言中的無冕之王。在其後的發展中,C++又不斷引入新的內容。標準模板庫和Boost程序庫的出現、泛型程序設計的流行,使得C++牢牢占據了TIOBE編程語言排行榜前三名的位置,成為業界最流行的程序設計語言之壹,成為壹個眾人傳頌的傳奇。

然而,隨著硬件技術的不斷發展,特別是多核技術的出現以及Java、C#等新語言的不斷湧現,C++的發展受到了很大的沖擊,在業界的應用範圍不斷萎縮。C++曾經是Visual Studio 6.0中的首選語言,但是在後繼版本的Visual Studio中,特別是在微軟推出.NET Framework之後,C++的地位不斷下滑,被後來居上的C#搶了風頭。很多鐘情於C++的程序員不禁發出這樣的感嘆:“C++老矣,尚能編否?”

雖然C++在發展歷程中經歷了上述小小的波折,但是應當看到,世界上還有無數的C++代碼在穩定地運行著,這些代碼還需要維護和升級。另外,C++在某些領域(比如,操作系統編程、遊戲開發、服務器端開發等)仍具有不可替代的優勢,無數基於C++的新項目正在進行著。為了應對現代程序設計語言的發展及業界的需求,C++也積極汲取現代程序設計語言的精華,C++的新標準C++11C++11正是在這種背景之下應運而生的。

C++11是自1998年C++首次被ISO標準化以來變化最大的壹個新標準,它主要在以下兩個方面對C++進行了革命性的改進和增強:

壹方面,C++11讓C++更加易於使用。我們都知道,C++以其語法簡潔而著稱於世,雖然簡潔的語法受到編程高手們的喜愛。同時,C++也非常靈活而自由,我們幾乎可以在C++中完成任何我們想要完成的事情。簡潔、自由和靈活是壹把雙刃劍,它讓C++擁有無限的能力,但同時也讓C++在程序員們的心目中成為壹門難學難用難以掌握的編程語言,特別是讓壹些初學者望而卻步,阻礙了C++的進壹步發展。為了改變這壹現狀,C++11加入了很多改善其易用性的語法特性,並從其他主流的編程語言(特別是Java)中借鑒吸收了很多旨在改善C++易用性的語法特點。例如,C++11提供了auto這種特殊的數據類型,使用它作為變量的數據類型,編譯器可以根據變量的初始值自動推斷其合理的真實數據類型,省去了程序員確定復雜變量的數據類型的繁瑣;C++11開始支持Lambda表達式,讓C++中匿名函數的定義和使用成為可能;C++11從Java和C#中借鑒了序列for循環語句,讓針對某個容器的循環遍歷更加簡單;C++11從Java中借鑒了函數屬性,從而可以對函數進行更加靈活的修飾。例如,我們可以使用noreturn指明壹個函數沒有返回值,也可以使用final限制某個虛函數被派生類重載,函數屬性的引入滿足了我們對函數的不同需求。

另壹方面,C++11讓C++的性能更高。相對於其他主流的高級編程語言而言,接近於低級語言的高性能表現,應該是C++最大的優勢了。但是C++11並不滿足於C++現有的性能表現,通過增加新的語法特性、改寫標準庫等手段,想榨幹C++身上最後的壹滴性能血液。例如,C++11提供了對右值引用、移動語義的完全支持,解決了從函數返回壹個大對象的問題;利用新的語法特性對標準庫進行了大規模的改寫,極大地提高了標準庫的性能表現;特別值得壹提的是,為了適應當今越來越普及的並行計算,充分利用主流的多核CPU的計算資源,C++11在標準庫中對並行計算提供了全面的支持,我們可以通過線程thread對象輕松完成線程的創建,也可以通過條件變量對線程的執行情況進行控制。對並行計算的完全支持,讓C++11擁有了更加優異的性能表現。

正是C++11在這兩個方面的大力改進,不僅進壹步增強了C++在性能方面的優勢,做到了揚長;同時也改善了C++的易用性,做到了避短,使得C++成為了壹門“又快又好”的程序設計語言。這些新特性給C++註入了新的活力,使得C++重新煥發青春,帶來C++的復興。C++也必將續寫它那不朽的傳奇。

最關鍵的壹點,我看好C++11對多線程的支持,這將讓他在多核心的服務器編程上大展拳腳

  • 上一篇:妳怎麽能做到!~ ~ ~ ~ ~ ~我急需
  • 下一篇:朱令 是什麽人啊
  • copyright 2024編程學習大全網