C++語言以其獨特的語言機制在計算機科學的各個領域中得到了廣泛的應用,C語言簡潔、高效,但是C語言也有其自身的缺點,例如弱的類型檢查機制等,使得使用C語言開發大型的應用程序比較困難。
面向對象的設計思想是在原來結構化程序設計方法基礎上的一個質的飛躍,C++完美地體現了面向對象的各種特性。剛開始形成的是c語言,那些想建立更快更有效的代碼的程序員非常欣賞c語言,有一位名叫bjarne stroustrup的人卻不滿足於僅僅是生產快速代碼,他想創建面向對象的c語言編程。他開始對c語言的內核進行必要的修改,使其能滿足面向對象模型的要求。C++從此產生。
bjarne stroustrup是C++的最初設計者和實現者。它自誕生以來,經過開發和擴充已成一種完全成熟的編程語言。現在C++已由ansi、bsi、din、其他幾個國家標准機構和iso定為標准。iso標准於1997年11月4日經投票正式通過。
C++標准演變了許多年。C++模板是近幾年來對此語言的一種擴展,模板是根據類型參數來產生函數和類的機制,有時也稱模板為“參數化的類型”。使用模板,可以設計一個對許多類型的數據進行操作的類,而不需要為每個類型的數據建立一個單獨的類。標准模板庫(standard tempalte library,stl )和微軟的活動模板庫(active tempalte library,atl )都基於這個C++語言擴展。
C++標准可分為兩部分, C++語言本身和C++標准庫。C++標准庫對於visual C++是相當新的,實際上微軟只是在發布visual C++ 5.0時去除了一些“bug”。標准庫提供了標准的輸入/輸出、字符串、容器(如矢量、列表和映射等)、非數值運算(如排序、搜索和合並等)和對數值計算的支持。應該說, c/C++包含了相對少的關鍵字,而且很多最有用的函數都來源於庫,C++標准庫實現容器和算法的部分就是stl。
stl是數據結構和算法的一個框架,數據結構包括矢量、列表和映射等,算法包括這些數據結構的查找、拷貝和排序等。1994年7月,ansi/iso C++標准委員會投票決定接受stl為C++標准庫的一部分,這個建議是根據alex stepanov、meng lee和david musser這三人的編程和軟件庫研究提出的。stl的產生是為了滿足通用性的設計目標,而不是為了提高性能。
那麼微軟對C++標准的態度怎什麼樣?微軟運行vC++與plum-hall C++,想比較得到的分數在92%和93%之間。為什麼不是100%的一個原因是跟蹤這個標准並同時建立一個編譯器比較困難,微軟也考慮了對現有編碼兼容的重要性,有時他們不得不偏離標准以保持這個兼容性。
C++的發展
第一階段從80年代到1995年。這一階段C++語言基本上是傳統類型上的面向對象語言,在工業界使用的開發語言中占據了相當大份額;
第二階段從1995年到2000年,這一階段由於標准模板庫(STL)和後來的Boost等程序庫的出現,泛型程序設計在C++中占據了越來越多的比重性;
第三階段從2000年至今,由於產生式編程和模板元編程的出現,C++出現了發展歷史上又一個新的高峰,使C++已經成為當今主流程序設計語言中最復雜的一員。
一,算法研究,注重理論研究和基層編程技能的積累。多參加編程競賽。
二,學習j2ee或者c#,同時了解數據庫應用。
三,網絡編程,做網頁,熟悉網頁三劍客,無論哪個劍客學到無敵了,都是前途無量,還要熟悉相關的網頁開發工具。
應該有充分的理由使用C++創建服務器組件,而不只是為了給上司一個好印象才使用C++。如果以前沒用過C++,你必須要盡力學習。
1. 性能
性能有個兩方面,算法速度和機器代碼效率。一個算法可以定義為數據通過系統的概念化的路徑,它描述一些點,在這些點上,數據能夠被操作並可轉換產生某個結果。例如,一個算法定義為獲取一個字符串,計算字符串中的字符個數,並作為結果返回的過程。算法與
語言是獨立的,所以在編程之前必須設計算法,編寫一個快速程序的第一個步驟是設計良好的算法,能以最少的操作步驟得出問題的答案。第二個步是選擇語言,這也影響程序的速度。
從性能的角度考慮,用匯編語言編寫程序是最佳的選擇,它是計算機能理解的自然語言。但是,幾乎沒有人用匯編語言編寫完整的程序,因為這樣做極其乏味。另一個最佳的選擇是c語言。然而,由C++語言提供的所有工具都產生C++,而不是c。使用C++的向導可以生成大量的使用代碼,而不必人工地編寫代碼。從編寫程序的難易程度和程序的性能綜合考慮, C++是最佳的選擇。
C++性能良好,因為它被編譯為機器代碼。對於vbscript和java等語言,代碼在運行時由程序解釋,而且每次運行程序時都要將代碼轉換為機器碼,這樣做效率比較低,不僅僅是已編譯過的C++程序運行得較快。
而且微軟C++語言已存在多年。這意味著微軟的編譯器程序員已經把許多優點集中到編譯器上,以致於它能產生非常高效的機器碼。因為C++是編譯語言,而且非常自然,比vb更接近機器代碼,所以由C++編譯器產生的代碼一定比vb的編譯代碼效率更高。