Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ObjuleC在C++上的优势是什么?_C++_Objective C_Programming Languages - Fatal编程技术网

ObjuleC在C++上的优势是什么?

ObjuleC在C++上的优势是什么?,c++,objective-c,programming-languages,C++,Objective C,Programming Languages,我听说过Objective-C,但我自己从未使用过。我很好奇,大家对它的看法一般是什么,也和C++有关。有什么类型的项目更有用还是不太有用?对于Mac和iPhone的开发,它肯定更好。最新版本有GC,所以如果你喜欢,你可能会比C++更喜欢。 < P>我的观点是ObjuleC的语法在开始时有点奇怪,尤其是如果你是从C/C++背景来的。如果你计划为Mac或iPhone编写应用程序,Cocoa开发是一条路要走。今年春天,我有机会在Mac上做了一个月的开发,选择了使用Qt库编写C++,因为我对这些非常熟

我听说过Objective-C,但我自己从未使用过。我很好奇,大家对它的看法一般是什么,也和C++有关。有什么类型的项目更有用还是不太有用?

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

< P>我的观点是ObjuleC的语法在开始时有点奇怪,尤其是如果你是从C/C++背景来的。如果你计划为Mac或iPhone编写应用程序,Cocoa开发是一条路要走。今年春天,我有机会在Mac上做了一个月的开发,选择了使用Qt库编写C++,因为我对这些非常熟悉,时间是最重要的。
如果你有Mac电脑,试试看!有很多关于它的信息,还有一些很好的开发工具。

如果你运行的是Linux,你可以安装GNUStep,它提供了与Cocoa很好的兼容性。这可以让您在不拥有Mac的情况下开始Objective-C/Cocoa开发。在我看来,学习Objective-C的最佳资源是苹果


和其他许多人一样,我刚刚开始关注因iPhone而产生的Obj-C。我已经做了很多C++和C,从我可以看到Obj-C有一个基本不同的方法,OO,它添加了SimultTalk类消息到C。像C++一样,它基本上仍然是C兼容,但是OO扩展允许你发送任何消息到任何对象。在这个意义上,它不是静态类型的,如C++和C,对象可以做的事情与它的类绑定。在Obj-C中,即使对象不支持消息,也可以向对象发送消息。如果对象不知道如何处理它,则可以转发它

真正酷的是,您可以在运行时添加接口协议,还可以添加自己的处理程序,用于拦截和隐藏现有类的消息处理程序

总而言之,在消息处理方面有更多的灵活性,更像在Ruby或Smalltalk中所做的。在OC上移植这种类型的OO是否是一个好主意,我还不能确定,在某些方面,C++方法与C的最初思想更好地结合在一起,但是另一方面,Obj-C OO方法更像OO纯化论者。 类是对象 动态类型和可选静态类型 类别 消息发送 表达性消息语法 反省 动态运行时 自动垃圾收集 C内 C++语言 简单 获得苹果技术

它比C++更具动态性,受SimultTalk的影响很大。相反,我发现它比C++更优秀,但是有些人确实如此。

< P>部分Objto-C如此伟大的语言不是语言,尽管这是很大的一部分,它是可可或CopaTouCH框架,至少与99%的Objc用户一起使用;-
实际应用中,我曾经是一个C++程序员,回到了过去的经典Mac时代。切换到Objective-C、Cocoa和MacOSX,我发现我的工作效率提高了很多。很难说效率到底提高了多少,但50%到100%的人感觉是对的。

好吧,如果你为某些平台(如IPhone)编写代码,就需要Objective-C。Objective-C还使用dynamicrun时间类型,这是许多人比静态编译时更喜欢的

Objective C的OO特性使用动态类型而不是静态编译时类型。这是两种语言的主要区别,不管它的优势与否取决于你对静态与动态类型的看法。

WebKIT最初是一个来自KDE的C++项目KHTML,后来被苹果改编为更符合可可环境,从而得到了ObjultC层。objective-c的语法比c++更简洁,尽管我知道我在这里是少数

非常松散的方法调用绑定和单独的接口使代码非常稳定,在单独的区域内存地址空间运行对象使应用程序非常稳定,因为它基本上是c。最新版本有一个GC,所以如果你喜欢,你可能会比C++更喜欢它。请注意,这是一个毫无根据的论点。GC不一定是C++开发者的GRAL……p…我同意-这就是我说的原因,所以如果你也喜欢的话,只有MacOSX10.5有GC。GC还没有出现在iPhone上。还在等!OSX中的GC已被弃用,取而代之的是ARC自动引用计数。我不认为它会出现在iOS上。为了补充这些优秀的答案,我想指出,如果你一开始对Objective-C++更满意的话,还有Objective-C++。是的,我认为它更干净。不只是一点点。就像在中一样,它实际上可以被解析。