1. 程式人生 > >1.C、C++與OC

1.C、C++與OC

OC與C語言的區別

OC裡中相容C語言的語法可以兩者混合編碼。 OC是面向物件的,有類,物件的概念,C語言沒有
C是面向過程的語言

函式呼叫:Objective-C通過互相傳遞訊息實現函式呼叫,由執行環境決定;而C直接進行函式呼叫,由編譯器決定。

物件記憶體分配,oc所有物件都分配在堆空間,而不會分配在棧空間,NSString str; 這樣不行,要有*;C可以宣告棧物件。

OC與C都不支援函式過載

 

OC的和C++的區別:
1、繼承:Objective-C與不支援多重繼承,而C++語言支援多重繼承(從側面可以說明多重繼承的效率不高);

2、函式呼叫:Objective-C通過互相傳遞訊息實現函式呼叫,而C++直接進行函式呼叫

3、定型:Objective-C是動態定型。所以它的類庫比C++要容易操作。Objective-C 在執行時可以允許根據字串名字來訪問方法和類,還可以動態連線和新增類。而C++,物件的靜態型別決定你是否可以傳送訊息給它。

4、介面:Objective-C採用protocol協議(非正式和正式)的形式來定義介面,而C++採用虛擬函式的形式來定義介面。

5、方法過載:c++中允許兩個方法的名字相同,引數個數相同,但是引數型別不同,以及不同的返回值型別。而OC中不允許同一個類中兩個方法有相同的名字,引數個數相同,引數型別不同。