Objective C 和 C 的區別有哪些?為什麼蘋果會選擇前者?

時間 2021-05-11 16:10:23

1樓:yekki

c++在objc面前簡直就是個渣!當年objc可以跨平台時火的不行!第乙個瀏覽器就是objc寫得!

後來這種大殺器只能用在mac上,開源的那個版本又不爭氣,可惜了……要是objc早開源了,真沒c++什麼事兒!

2樓:臉雲

這個老問題也不知道咋出現在時間線裡了,就吐個槽吧,要回答這個問題兩個都要系統學過、認真用過吧,起碼對蘋果平台程式語言選擇的歷史也要有點背景知識吧……

論歷史,Objective-C 比 C++ 出現、成熟都要早,物件系統設計更接近 Alan Kay 當初的本意。但是,蘋果早年其實是選了 Pascal 的呀。歷史是這樣的:

classic MacOS 是選了 ObjectPascal 做為官方應用開發語言滴。

而到了 90 年代中,大部分 MacOS 應用都是在 CodeWarrior 裡用 C++ 寫滴。

2023年開始推出了 C++ 的應用開發框架 Carbon,這個當初可是 MacOS X 的首選框架,比如 Finder 一直到 2009 年才用 Cocoa 重寫了,當時也被視為 Cocoa 成熟的重要里程杯。

2023年 MacOS X 轉64位之後,Cocoa 就逐步取代 Carbon,這以後 Objective-C 才取代 C/C++ 成為主要平台開發語言。

估計國內 2007 年之前也沒多少 Mac 開發者就是了。

3樓:mike chen

語言的設計屬於哲學上的範疇。ObjC的設計,顯然是受到smalltalk的影響,但在邏輯上很完整,比較完美的實現了OOP的設計。

而C++的設計,其實是沒有完全的哲學支撐,以完成任務為主,不斷的吸收各種程式設計技術,形成一種實用化的大雜燴工業語言。 C++的成功之處在於實用性,而且易於上手,但由於設計上的先天不足,本質上是存在很多問題的,只能靠不斷引入越來越複雜的特性進行彌補。

4樓:Pluto Hades

因為C++之父自己都承認,C++不是乙個物件導向語言。

知道這個你是不是覺得被課本坑了?http://www.

5樓:RefuseBT

可以從歷史角度看看。

先看Objective-C

2023年,在C語言基礎上貝爾實驗室的Bjarne Stroustrup推出了C++

2023年公布的的C++語言1.0版的內容中又新增了一些重要特徵:虛函式的概念、函式和運算子的過載、引用、常量(constant)等。

2023年推出的2.0版形成了更加完善的支援物件導向程式設計的C++語言,新增加的內容包括:類的保護成員、多重繼承、物件的初始化與賦值的遞迴機制、抽象類、靜態成員函式、const成員函式等。

最後看Objective-C的主推賈伯斯的NeXTSTEP

6樓:魯哈花

蘋果選擇objc是為了更好的控制這門語言,為己所用,隨意在語言特性中加入適合於自身開發需求的元素。如果選c++就不太行,沒有這個優勢

7樓:白如冰

IOS下的編譯器clang是C++開發的:

Clang and LLVM clang: a C languagefamily frontend for LLVM. All of the LLVM

tools and libraries are written in C++ with extensive use of the STL.

針對LS某些說蘋果厭惡C++的人

沒有 C 和 Objective C 基礎如何快速學習 iOS 開發?

我是從c 轉到學習ios開始的。N年前學習和接觸過C,C 其實,沒有C c 基礎,並不會阻礙你學習OBJ C買本OBJ C基礎教程,裡面會從0開始講OBJ C,一般都會涉及基礎的C語言基礎。最後,推薦兩本書,李剛 IOS瘋狂講義 上下兩冊,從0開始講OBJ C,再到IOS程式開發。這本書還不錯,難得...

C 虛函式和C 虛函式的區別?

c 不了解。但是關於c 的說法,這樣是不對的。題主你其實糾結的不是語言,而是an implementation of c 意思是,之所以會有上面的結果,是因為你的編譯器的實現。在c 標準裡面,對於virtual 的具體實現沒有做任何要求。而virtual method table只是大多數編譯器的實...

Objective C和Swift能不能用來寫作業系統和開發Windows軟體

姜振華 當然可以,Swift 5.3 Win10 版已經有了,雖然安裝包是 Google Brain 的 Saleem Abdulrasool 幫著搞的,鏈結在這裡 Swift.org 官方還搞了乙個名為 swift win32 的 Framework 供你開發 win 平台應用,demo 鏈結在此...