c ++,objective-c和objective-c ++有什么区别?

Mad*_*han 12 c++ objective-c objective-c++

我想知道c ++与objective-c和objective-c ++之间的区别.任何人都可以给我带来差异吗?我们可以使用c ++进行iPhone开发吗?

谢谢,Madan Mohan

小智 27

C++是Bjarne Stroustroup的语言,它基于向C语言添加类和元编程,以便将大多数额外的工作放入编译器中,并且在运行时依赖于尽可能少的工作.

Objective-C是Brad Cox的语言,它基于向C语言添加SmallTalk风格的动态消息传递运行时库,并添加少量语法以使其更易于使用.

直截了当地说,Objective-C++是在向C++添加Objective-C运行时和语法时得到的.它有其局限性(例如,您不能创建C++类的Objective-C子类,反之亦然,而Objective-C不喜欢C++命名空间)但允许您使用Objective-C对象的C++类,反之亦然.

您可以在iPhone开发中使用Objective-C++.这实际上意味着您可以编写一个对象模型完全是C++的应用程序,其中控制器层需要与Objective-C连接才能使用Cocoa Touch API.

  • 我还要补充一点,Objective-C是C的*严格*超集,而C++则不是.https://secure.wikimedia.org/wikipedia/en/wiki/Compatibility_of_C_and_C%2B%2B (3认同)
  • Objective-C++是一种很好的方式来使用像vector和map这样的STL模板 - 在Cocoa中没有好的,低成本的类比. (2认同)

Jer*_*fin 5

C++和Objective C是向C添加面向对象的两种不同方法.当前目标C编译器也接受C++作为输入,因此您可以构建一个程序,其中包含用Objective-C编写的一些文件和用C++编写的其他文件.当以这种方式使用C++时,它通常被称为Objective-C++.