使用Objective-C而不是C++有什么好处

use*_*745 21 c++ programming-languages objective-c

我听说过Objective-C,但我自己从未使用过它.我很好奇每个人对它的看法是什么,也与C++有关.是否有任何类型的项目会更有用或更少用?

And*_*ser 19

像许多其他人一样,我刚刚开始关注iPhone的Obj-C.我已经做了很多C++和C#,从我看到的内容Obj-C有一个与OO基本不同的方法,因为它向C添加了类似Smalltalk的消息.就像C++一样,它基本上仍然是C兼容的但是OO扩展让您将任何消息发送到任何对象.从这个意义上讲,它不像C++和C#那样是静态类型的,其中对象可以做的事情与它的类相关联.在Obj-C中,即使它不支持,也可以向对象发送消息.如果对象不知道如何处理它,则可以转发它.

真正酷的是你可以在运行时添加接口(协议),你可以添加自己的处理程序来拦截和隐藏现有类的消息处理程序.

总而言之,在消息处理方面有更多的灵活性,更像是你在Ruby或Smalltalk中所做的.将这种类型的OO移植到C上是否是一个好主意我还不知道,在某种程度上,C++方法与C的原始思想更好地融合,但另一方面,Obj-C OO方法更多OO纯粹主义者喜欢什么.


小智 15

"Objective-C语言的一些不错的功能":

  • 类是对象
  • 动态类型和可选的静态类型
  • 分类
  • 消息发送
  • 富有表现力的消息语法
  • 内省
  • 动态运行时
  • 自动垃圾收集
  • C里面
  • C++流利
  • 简单
  • 访问Apple技术


enn*_*ler 12

我发现objective-c的语法比c ++更清晰,尽管我知道我在这里是少数

  • 是的,我会说它更清洁了.不只是一点点.喜欢它,它实际上可以被解析. (3认同)

its*_*att 5

我的观点是,Objective-C 的语法起初有点“奇怪”,特别是如果您来自 C/C++ 背景(就像我一样)。如果您打算为 Mac 或 iPhone 编写应用程序,那么 Cocoa 开发是您的最佳选择。今年春天,我有机会在 Mac 上进行了大约一个月的开发,并选择使用 Qt 库用 C++ 编写它,因为我对这些库非常熟悉,而且时间很重要。

如果您有 Mac,请试一试!有很多关于它的信息,并且有一些很好的开发工具。


sch*_*hwa 5

是什么使Objective-C的如此之大的部分是不是语言(尽管这一个很大的OT它的一部分),它是可可(或CocoaTouch)框架,它(至少objc 99%的用户一起去;-)

实际上,在旧的“经典”Mac 时代,我曾经是一名 C++ 程序员。切换到 Objective-C、Cocoa 和 Mac OS X,我发现我变得更有效率了。很难说到底有多少生产力,但 50% 到 100% 感觉是对的。


Dan*_*ker 5

Objective C的OO功能使用动态类型而不是静态(编译时)类型.这是两种语言方法的主要区别 - 无论是否优势取决于您对静态与动态类型的看法.


Lou*_*nco 2

对于Mac和iPhone开发来说,肯定是更好的。最新版本有 GC,所以如果您喜欢它,您可能会比 C++ 更喜欢它。