2012-02-19 28 views
1

我只是想知道如果Apple提供的所有代碼都是ios開發庫,並且論壇是客觀的c或C++。兩者的區別究竟是什麼? 哪一個可以在Xcode中工作?Objective c或C++?

+2

請刪除「另一件事...有沒有...」從這個問題短語,並把它放在一個單獨的題。在堆棧溢出中,每個帖子中只應該提出一個問題。 – 2012-02-19 13:37:35

+0

好的,抱歉,不知道 – Alessandro 2012-02-19 14:32:22

+0

這個問題很難讀。我想你問的問題是「C++和客觀C是Apple提供的唯一語言」?那是對的嗎? – 2012-02-19 14:40:38

回答

3

Obj-C和C++都是C語言的擴展。兩者都想做同樣的事情 - 用對象擴展C。

C++更加複雜,目前在每個非Apple系統上更受歡迎。

這兩個工作在Xcode。實際上,您可以在一個程序(Obj-C++)中組合Obj-C和C++。

語言之間的差異很大 - 對象被聲明,分配和釋放的方式不同。不僅語法不同,而且它們的設計方式不同(操作符覆蓋,訪問權限,多重繼承,C++中的模板;消息發送,類別,屬性,引用計數,Obj-C中的協議)。

如果你對其中任何一個都不瞭解,就很難解釋這些差異。 Obj-C更容易學習(這簡單得多)。 對於這兩種語言,您都需要了解C語言。

編輯:大部分的iOS開發庫的代碼或者是純C或對象 -

+3

我不同意你需要了解C才能學習C++或Objective-C – 2012-02-19 14:42:27

+0

使用C++有點困難,但在沒有C的情況下你不能在Obj-C中做任何事情。你有沒有使用CGPoint或一個'CGRect'?它們是C結構,而不是Obj-C對象。你有沒有使用過'NSLog'?這是一個C函數,而不是Obj-C方法。你有沒有使用'#define'?這是C預處理器。你曾經使用過'enum'嗎? Obj-C教程教C而不說它是C.然後人們看不到它們的區別,但是你不能在沒有C語言知識的情況下編寫任何Obj-C程序。 – Sulthan 2012-02-19 14:46:40

+0

那麼「知道C井」和「一些C知識」是有區別的 – 2012-02-19 14:53:07