當前位置:編程學習大全網 - 編程軟體 - Objective-C 和 C++ 的區別有哪些?為什麽蘋果會選擇前者

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

除了都能用C語言以外就沒什麽太特別的***同點了。另外並不是蘋果選了OC,而是NeXT選了OC(Mac OSX的前身是NeXT公司的NeXTSTEP系統)。

OC是C語言基礎上增加了Smalltalk語言中的消息功能。OC是真正的C的超集(C++並不是),OC的C語言部分是走C語言規範的。而且某種意義上OC比C++更面向對象,但是性能很低。並且OC2.0又增加了lambda、自動引用計數、自動boxing/unboxing等語法功能。

C++並不像壹般人認為那樣是C的超集。C++和C完全是兩套規範。而且C++除了面向對象編程,還有比較完善的基於模板的元編程功能。當然C++也提供了lambda之類,相對細節的語法(不過實現和OC並不壹樣)。

至於當初為什麽NeXTSTEP選用OC作為開發語言,可以說單純就是選了。OC顯然比C好用,而那時候C++和OC比也沒有很明顯的優勢(相對簡單的OC成熟自然也比C++快壹些,C++從1983年正式出現,直到1998年才標準化,而到2011年才基本完善)。

另外這裏不得不說事實上還有Objective-C++,也就是把OC在C中添加的功能添加到C++上,另外增加了壹些適合C++的功能(比如OC中C結構體裏不能用OC對象,但是OC++中可以)。OC++中可以混用OC和C++的類,並且可以在使用OC接口的同時,利用C++的強大功能。

  • 上一篇:我在自己寫壹個STL,其中的list使用雙向鏈表的,誰能幫我寫壹個叠代器。
  • 下一篇:ACP認證是什麽?
  • copyright 2024編程學習大全網