1.C、C++與OC
阿新 • • 發佈:2018-11-19
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中不允許同一個類中兩個方法有相同的名字,引數個數相同,引數型別不同。