Objective-C 和 C++ 的区别有哪些?为什么苹果会选择前者

2025-03-10 09:52:32
推荐回答(1个)
回答1:

这是两门不同的语言不同点很多,不过从表面也可以看出来相似点,都有C,学习难度C++应该是更大的,OC主要就是用于开发iOS程序,C++是跨平台的,很强大,很多用于开发游戏

可以从历史角度看看。

先看Objective-C
1980年代初Brad Cox和Tom Love在公司Stepstone发明。
1983 年,Cox 与 Love 合伙成立了 Productivity Products International(PPI)公司,将 Objective-C 及其相关库商品化贩售,并在之后将公司改名为 StepStone。
1986年,Cox 出版了一本关于 Objc 的重要著作《Object-Oriented Programming, An Evolutionary Approach》,书内详述了 Objective-C 的种种设计理念。

再看C++
1983年,在C语言基础上贝尔实验室的Bjarne Stroustrup推出了C++
1985年公布的的C++语言1.0版的内容中又添加了一些重要特征:虚函数的概念、函数和运算符的重载、引用、常量(constant)等。
1989年推出的2.0版形成了更加完善的支持面向对象程序设计的C++语言,新增加的内容包括:类的保护成员、多重继承、对象的初始化与赋值的递归机制、抽象类、静态成员函数、const成员函数等。

最后看Objective-C的主推乔布斯的NeXTSTEP
NeXTSTEP Steve Jobs在1985年离开苹果计算机后所创立的公司。
NeXT获得了Stepstone公司的Objective-C语言授权,并扩展了著名的开源编译器GCC 使之支持 Objective-C 的编译。并基于 Objective-C 开发了 AppKit 与 Foundation Kit 等等库,作为 NeXTSTEP 的的用户接口与开发环境的基础。
第一个版本 0.8  1988年10月12日发布

Objective-C的历史远比C++久,乔布斯1985刚从苹果公司撵出去,准备卷土重来二次创业。C++ 85年才出了1.0,乔布斯建立NeXTSTEP时,估计还不知道C++是个什么玩意,而Objective-C 83年就有比较成熟的商业产品了。要你肯定也选Objective-C,不会选C++。