C++學習前理論

C++概述:java

  C++是C語言的繼承,它既能夠進行C語言的過程化程序設計,又能夠進行以抽象數據類型爲特色的基於對象的程序設計,還能夠進行以繼承和多態爲特色的面向對象的程序設計。C++擅長面向對象程序設計的同時,還能夠進行基於過程的程序設計,於是C++就適應的問題規模而論,大小由之。C++不只擁有計算機高效運行的實用性特徵,同時還致力於提升大規模程序的編程質量與程序設計語言的問題描述能力。linux

  C++ 是一種靜態類型的、編譯式的、通用的、大小寫敏感的、不規則的編程語言,支持過程化編程、面向對象編程和泛型編程。c++

  C++ 被認爲是一種中級語言,它綜合了高級語言和低級語言的特色。chrome

  C++ 是由 Bjarne Stroustrup 於 1979年在新澤西州美利山貝爾實驗室開始設計開發的。C++ 進一步擴充和完善了 C 語言,最初命名爲帶類的C,後來在 1983 年改名爲 C++,在 C++中,庫的地位是很是高的, Bjarne Stroustrup先生屢次表示了設計庫來擴充功能要好過設計更多的語法的言論。現實中,C++的庫門類繁多,解決的問題也是極其普遍。編程

  C++ 是 C 的一個超集,事實上,任何合法的 C 程序都是合法的 C++ 程序windows

  C++ 徹底支持面向對象的程序設計,包括面向對象開發的四大特性:瀏覽器

    一、封裝   二、數據隱藏    三、繼承     四、多態服務器

  標準的 C++ 由三個重要部分組成:網絡

    核心語言,提供了全部構件塊,包括變量、數據類型和常量,等等。數據結構

    C++ 標準庫,提供了大量的函數,用於操做文件、字符串等。

    標準模板庫(STL),提供了大量的方法,用於操做數據結構等。

C++發展史:

  世界上第一種計算機高級語言是誕生於1954年的FORTRAN語言,以後出現了多種計算機高級語言。1970年,AT&T的Bell實驗室的D.Ritchie和K.Thompson共同發明了C語言。研製C語言的初衷是用它編寫UNIX系統程序,所以,它其實是UNIX的「副產品」。它充分結合了彙編語言和高級語言的優勢,高效而靈活,又容易移植。 

  20世紀70年代中期,Bjarne Stroustrup在劍橋大學計算機中心工做。他使用過Simula和ALGOL,接觸過C。他對Simula的類體系感覺頗深,對ALGOL的結構也頗有研究,深知運行效率的意義。既要編程簡單、正確可靠,又要運行高效、可移植,是Bjarne Stroustrup的初衷。以C爲背景,以Simula思想爲基礎,正好符合他的設想。  

  1979年,Bjame Sgoustrup到了Bell實驗室,開始從事將C改良爲帶類的C(C with classes)的工做。1983年該語言被正式命名爲C++。自從C++被髮明以來,它經歷了3次主要的修訂,每一次修訂都爲C++增長了新的特徵並做了一些修改。第一次修訂是在1985年,第二次修訂是在1990年,而第三次修訂發生在c++的標準化過程當中。在20世紀90年代早期,人們開始爲C++創建一個標準,併成立了一個ANSI和ISO(Intemational Standards Organization)國際標準化組織的聯合標準化委員會。該委員會在1994年1月25曰提出了第一個標準化草案。在這個草案中,委員會在保持Stroustrup最初定義的全部特徵的同時,還增長了一些新的特徵。 
  在完成C++標準化的第一個草案後不久,發生了一件事情使得C++標準被極大地擴展了:Alexander stepanov建立了標準模板庫(Standard Template Library,STL)。STL不只功能強大,同時很是優雅,然而,它也是很是龐大的。在經過了第一個草案以後,委員會投票並經過了將STL包含到C++標準中的提議。STL對C++的擴展超出了C++的最初定義範圍。雖然在標準中增長STL是個很重要的決定,但也所以延緩了C++標準化的進程。 
  委員會於1997年11月14日經過了該標準的最終草案,1998年,C++的ANSI/IS0標準被投入使用。一般,這個版本的C++被認爲是標準C++。全部的主流C++編譯器都支持這個版本的C++,包括微軟的Visual C++和Borland公司的C++Builde

各類語言對比:

  java 的優勢是很是適合用於開發大型企業級項目,移動嵌入式程序例如手機遊戲,可是要學的技術不少且在底層開發中不佔優點

  c語言是經久不衰的語言,主要應用在嵌入式編程,硬件驅動程序設計,能夠作底層開發,可是在企業級別中的開發中不佔優點

  C++主要開發工具是微軟的VisualC++和Borload的BCB(BorloadC++ Builder),優勢在於含有大量的庫,如MFC,GUI等,可直接調用windows庫函數幹不少事情,主要領域一是作桌面程序,像QQ,迅雷這種桌面軟件,領域二是作遊戲後臺開發,大部分遊戲(包括魔獸等)後臺語言就是使用C++,可是語言過分複雜和標準庫過分蒼白。C++語言過於複雜,而且C++語言已經沒法簡化,若是編譯器可以提供可定製編譯也許對這個語言會有幫助。

C++應用領域:

        1. 服務器端開發:不少遊戲或者互聯網公司的後臺服務器程序都是基於C++開發的,並且大部分是linux操做系統

    2. 遊戲:目前不少遊戲客戶端都是基於C++開發的,除了一些網頁遊戲可能不是,這個領域須要學習的東西就比較多,好比計算機圖形、多媒體處理。  

    3. 虛擬現實:這個領域一直在發展,目前VR眼鏡比較火,須要大量基於這些的C++開發。  

         4. 數字圖像處理:好比像AutoCAD的系統開發,像OpenCV的視覺識別等等。  

         5.科學計算 在科學計算領域,FORTRAN是使用最多的語言之一。可是近年來,C++憑藉先進的數值計算庫、泛型編程等優點在這一領域也應用頗多。  

    6.網絡軟件 C++擁有不少成熟的用於網絡通訊的庫,其中最具備表明性的是跨平臺的、重量級的ACE庫,該庫能夠說是C++語言最重要的成果之一,在許多重要的企業、部門甚至是軍方都有應用。好比GOOGLE的chrome瀏覽器,就是使用C++開發。  

     7.分佈式應用。  

     8.操做系統 在該領域,C語言是主要使用的編程語言。可是C++憑藉其對C的兼容性,面向對象性質也開始在該領域嶄露頭角。  

      9.設備驅動程序 也是由於效率的緣由。  

           10.移動(手持)設備。

相關文章
相關標籤/搜索