C++與C的區別及對C的增強

語法層次、高級特性、使用場景、效率

1)運行機制上:

C是面向過程編程語言,C++是面向對象編程語言。    

2)適用方向:

     C語言適合程序體積小、運行效率高的場合,如嵌入式等更接近底層的環境;

C++適合更上層、更復雜的場合,以及一些具體業務的場景。

3)編程語法上:

       C++具有封裝、繼承、多態三種特性;

       C語言不支持重載,C++支持重載;

       C++相比C語言增加了許多類型安全的功能,如強制類型轉換;

       C++支持範式編程,如模板類、函數模板等;

4C++C的增強:

       標準C++引入了關鍵字namespace,可以更好的控制標識符的作用域;

       實用性增強:C語言中變量必須在作用域開始的位置定義,C++可以隨用隨定義;

       變量檢測增強:C語言中可以定義多個同名全局變量,且都會鏈接到同一個地址,C++中不允許重複定義多個同名變量;

       struct類型增強:C語言中認爲struct爲一組變量的集合,並不認定爲新的數據類型,C++中認爲是新的數據類型;

       C語言函數不指定返回值類型就默認爲int,C++中所有的變量和函數必須顯示的指明,C語言中的默認類型不合法;

       新增bool類型:C語言中真用非0表示,假用0表示,C++中新增bool關鍵字,真爲true,假爲false,bool類型佔據1B;

       三目運算符增強:C語言中三目運算符返回變量值,不可以作爲左值,C++中三目運算符返回變量本身,變量本身非常量時可以作爲左值;

       const增強:C語言中const可以說是假的const,有自己的存儲空間,可以通過指針去修改值,C++中const是真正的常量,在編譯期間就已經確定了值,通常不爲普通的const變量分配存儲空間,而保存在符號表中。

       真正的enum:C語言中枚舉本質是整形,可以用任意整數賦值,C++中枚舉是變量,只能用枚舉出的參數進行賦值。

5C++C的擴展:

       引用:C++增加了引用,作爲以定義變量的別名。引用的本質是常指針Type*const name;

       inline:C++提供了inline函數,實現真正的內嵌,編譯器直接將函數嵌入只函數調用地方;

       C++提供了默認參數與佔位參數;

       C++提供了函數重載功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章