c++ - 与 C++ 相比,使用 Objective-C 有什么优势

标签 c++ objective-c programming-languages

我听说过 Objective-C,但我自己从未使用过它。我很好奇每个人对它的总体看法以及与 C++ 的关系。是否有任何类型的项目会更有用或更没用?

最佳答案

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

真正酷的事情是您可以在运行时添加接口(interface)(协议(protocol)),并且您可以添加自己的处理程序来拦截和隐藏现有类的消息处理程序。

总而言之,在消息处理方面有更大的灵 active ,更像是在 Ruby 或 Smalltalk 中所做的。将这种类型的 OO 移植到 C 上是否是一个好主意我还不能确定,在某些方面,C++ 方法与 C 的原始想法更好地结合,但另一方面,Obj-C OO 方法更多OO 纯粹主义者喜欢什么。

关于c++ - 与 C++ 相比,使用 Objective-C 有什么优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/112702/

相关文章:

ios - Google Plus 登录不适用于 iOS 7

objective-c - 如何使用AudioServices播放声音效果- objective-c

python - 词法范围有动态方面吗?

c++ - 无法在 C++ 中的 for 循环条件语句中使用 vector.size()

c++ - 我正在尝试用 C++ 做一个方程式,但它一直输出 1

c++ - 通过模板成员函数访问私有(private)元组元素

programming-languages - 关于语言和学习地点的建议?

c++ - 打开文件没有警告提示

objective-c - 3 个或更多*连续*布局 channel 以准备显示。错误

multithreading - 内置多线程支持是什么意思?