C 語言做是結構化和模塊化的語言,適合處理較小規模的程序。對於複雜的問題,規模較大的程序,須要高度的抽象和建模時,C語言並不合適。爲了解決軟件危機, 20世紀80年代, 計算機界提出了OOP(object oriented programming)思想,支持面向對象的程序設計語言應運而生。Smalltalk 就是當時問世的一種面向對象的語言。在實踐工做中,因爲C語言的普遍使用,在C語言的基礎上根據面向對象的思想發展了C語言,造成了C with class (帶類的C語言)。
1982年,美國AT&T公司貝爾實驗室的Bjarne Stroustrup博士在C語言的基礎上引入並擴充了面向對象的概念,發明了一種新的程序語言。爲了表達該語言與C語言的淵源關係,命名爲C++,而Bjarne Stroustrup博士被尊稱爲C++語言之父。
C++是C語言的增強,是以C語言爲基礎,並徹底兼容C語言的特性。
計算機語言發展的樹形結構:算法
C++語言主要用於如下領域:
A、系統層軟件開發
B、服務器程序開發
C、流戲,網絡,分佈式,雲計算
D、科學計算
現代軟件產品架構圖:編程
C++語言是在C語言基礎上擴展發展而來,徹底兼容C語言。在C語言基礎上,C++語言主要包括三大部分:C++對C語言基礎語法的擴展,面向對象支持(繼承,封裝,多態),STL等。服務器
C語言是一個結構化語言,重點在於算法與數據結構。C程序的設計首要考慮的是如何經過一個過程,對輸入(或環境條件)進行運算處理獲得輸出(或實現過程(事物)控制)。C++首要考慮的是如何構造一個對象模型,讓構造的模型可以契合與之對應的問題域,經過獲取對象的狀態信息獲得輸出或實現過程(事物)控制。因此C語言和C++的最大區別在於解決問題的思想不同,C語言是面向過程的語言,C++是面向對象的語言。
C++對C的加強表如今六個方面:
(1) 類型檢查更爲嚴格。
(2) 增長了面向對象的機制。
(3) 增長了泛型編程的機制(Template)。
(4) 增長了異常處理。
(5) 增長了運算符重載。
(6) 增長了標準模板庫(STL)。網絡