我听说过Objective-C,但我自己从未使用过它.我很好奇每个人对它的看法是什么,也与C++有关.是否有任何类型的项目会更有用或更少用?
像许多其他人一样,我刚刚开始关注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纯粹主义者喜欢什么.
从"Objective-C语言的一些不错的功能":
类是对象
动态类型和可选的静态类型
分类
消息发送
富有表现力的消息语法
内省
动态运行时
自动垃圾收集
C里面
C++流利
简单
访问Apple技术
我发现objective-c的语法比c ++更清晰,尽管我知道我在这里是少数
Objective C的OO功能使用动态类型而不是静态(编译时)类型.这是两种语言方法的主要区别 - 无论是否优势取决于您对静态与动态类型的看法.