1. 程式人生 > >C和C++的聯絡與區別

C和C++的聯絡與區別

面向過程的思路:分析解決問題所需的步驟,用函式把這些步驟依次實現。

面向物件的思路:把構成問題的事務分解為各個物件,建立物件的目的,不是完成一個步驟,而是描述某個事務在解決整個問題步驟中的行為。

從上述描述可以看出,其實面向物件和麵向過程是兩種思考解決問題的方式,其差異主要在於思考的角度。

C語言是面向過程的程式設計,它最重要的特點是函式,通過main函式來呼叫各個子函式。程式執行的順序都是程式設計師事先決定好的。

C++是面向物件的程式設計,類是它的主要特點,在程式執行過程中,先由主main函式進入,定義一些類,根據需要執行類的成員函式,過程的概念被淡化了(實際上過程還是有的,就是主函式的哪些語句),以類驅動程式執行,類就是物件,所以我們稱之為面向物件程式設計。面向物件在分析和解決問題的時候,將涉及到的資料和資料的操作封裝在類中,通過類可以建立物件,以事件或訊息來驅動物件執行處理。

C語言和C++的最大區別在於它們解決問題的思想方法不一樣。C語言主要用於嵌入式領域,驅動開發等與硬體直接打交道的領域, C++可以用於應用層開發,使用者介面開發等於作業系統打交道的領域。

C++既繼承了C強大的底層操作特性,又被賦予了教科書式的面向物件機制。它特性繁多,有其他面嚮物件語言鮮見的多繼承,有耐人尋味的對值傳遞與引用傳遞入木三分的區分以及const關鍵字,等等。C++就像是一把瑞士軍刀,或者像是一個工具箱,它為你提供儘可能多的工具,多到讓不熟悉它的人無所適從,讓懂得如何使用它的人如魚得水。C++的種種特性使得它非常適合用來編寫底層資料結構,演算法,庫等,是系統軟體開發以及數學模型構建等的強大武器庫,被譽為工業級程式語言。

C++對C的“增強”,表現在以下幾個方面:

型別檢查更為嚴格。增加了面向物件的機制。增加了泛型程式設計的機制(Template)。增加了異常處理。增加了運算子過載。增加了標準模板庫(STL)。增加了名稱空間,避免全域性命名衝突。

轉自:https://www.cnblogs.com/Amedeo/p/6246013.html#_label2