C和C 的區別

2021-08-15 05:08:43 字數 2131 閱讀 8827

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

函式過載是c++支援的,c不支援

c++的函式過載在類繼承的時候不起作用

#include

using

namespace

std;

class

base

virtual

void

print

()};

class

derive

:public

base

};int

main

()

而c語言中也可以用巨集來改變函式的定義

#include

double

sqr(x)

#define

sqr(x)

x*x //這兩行不能互換位置,否則expanded from macro

intmain

()

c++支援預設引數,而c不支援預設引數

#include

intpower

(intm,

intn=2

)return

result

;}

在c語言中不加void則表示引數是任意個數,而c++中void和空是乙個意思

#include

//空表示任意引數

void

greet

()//表示不可以傳引數

void

test

(void

)int

main

()

c++結構體賦值和c語言的區別

#include

using

namespace

std;

struct

animal

};//正常情況情況下可以這樣賦值,但是當函式是virtual的時候會失敗

//少了虛函式位址

intmain

()' from '

' to 'animal'

animala =

;cout

<<

endl

;}

c++結構體的成員預設訪問屬性

#include

using

namespace

std;

struct

animal

};//這裡預設public,所以可以省略

struct

dog:

animal

;int

main

()

#include

intmain

()}

然而實際上不論是gcc還是vc都支援c在for迴圈中定義變數,未來標準可能會改變

//operator new有三種形式:

//throwing

void

*operator

new(

std::

size_t

size

)throw

(std

::bad_alloc

);//nothrow

void

*operator

new(

std::

size_t

size

,const

std::

nothrow_t

¬hrow_value

)throw

();//placement

void

*operator

new(

std::

size_t

size

,void

*ptr

)throw

();

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

C和C 的區別

c語言是面向過程的,c 是物件導向的,而c和c 的區別也就是面向過程和物件導向的區別。面向過程 op 和物件導向 oo 其實是相輔相成的,面向過程是以 事件 為中心的,分析完成這個事件需要做的工作,最後用函式來實現,並按照順序呼叫。而物件導向是以 物件 為中心,建立物件的目的不是為了完成某個工作,而...