C和C 的區別

2021-08-21 18:15:10 字數 870 閱讀 7910

c語言是面向過程的,c++是物件導向的,而c和c++的區別也就是面向過程和物件導向的區別。

面向過程(op)和物件導向(oo)其實是相輔相成的,面向過程是以「事件」為中心的,分析完成這個事件需要做的工作,最後用函式來實現,並按照順序呼叫。而物件導向是以「物件」為中心,建立物件的目的不是為了完成某個工作,而是為了描述某個事物在整個解決問題中的行為。

總之,面向過程的思維是分析綜合,物件導向的思維是構造。

那麼到底哪個好?這是分情景的。

專業的來講,就是蛋炒飯是將雞蛋和菜混合,耦合度高,可維護性差;蓋澆飯將菜和飯分離,耦合度低,可維護性高。

軟體工程追求的的目標之一就是可維護性,包括三個方面:可理解性、可測試性、可修改性。物件導向就增強了程式的可維護性。

總結一下:

面向過程的效能比較高,因為物件導向中類呼叫時需要例項化,系統開銷較大,比較消耗資源。但是面向過程沒有物件導向易維護、易擴充套件、易復用。物件導向程式設計有繼承、封裝、多型等特性,可以設定出低耦合的系統。

以上是實質上的區別,也可以說是程式設計模式的區別,下面說一說其他區別。

1.函式返回值:c沒有寫返回值,預設int;c++沒有寫會報錯;

2.函式引數列表:如果乙個函式沒有引數,c中可傳可不傳,c++中如果傳就會出錯,c++支援預設引數,包括:全預設、半預設(只能從右向左依次給出)。一般預設引數在宣告處給出。

3.函式名不同,c++支援函式過載,減少函式名汙染。c++底層函式是用函式名+引數列表標記的,c語言是用函式名標記的。

4.引用

5.命名空間:有效緩解命名衝突的問題。

6.輸入輸出

7.類和物件

C 和C的區別

c 與c語言的關係 1 c 繼承了所有的c特性 2 c 在c的基礎上提供了更多更好的語法和特性 3 c 的設計目標是執行效率和開發效率的統一 c 對c語言的加強 1 c 中所有的變數都可以再需要使用時再定義 如 for迴圈等中需要的變數 3 c中可以定義多個同名的全域性變數 c 不可以 4 cons...

C和C 的區別

這裡主要討論的是區別,而不是c 中有的,而c語言中沒有的東西。c 比c語言多了很多東西,最重要的當屬類 物件導向程式設計 和模板 泛型程式設計 基於泛型程式設計還引出了元程式設計 metaprogramming 等等。這裡討 共部分但是不一樣的部分 函式過載是c 支援的,c不支援 c 的函式過載在類...

C 和C的區別

c c 的聯絡 c c 區別 小知識點補充擴充套件 free 而new開闢物件陣列用的是new size 釋放的的時候是 delete 5 返回值問題,malloc開闢成功返回void 需要強轉,失敗返回null,new 成功返回物件指標,失敗丟擲異常 這就可能會提到c 的new handler機 ...