我已经学习了几个月的C++,并且发现它是一种优秀的语言,尽管它很有特权.
我想知道究竟什么是所谓的Objective-C++,是否值得学习它作为主要开发语言来定位Apple环境(即Mac OS X,iPhone OS).在网上搜索我只发现了几篇好文章:主要是维基百科的条目,还有一篇来自Mac开发中心.
维基百科说:
Objective-C++是GNU Compiler Collection的前端,它可以编译使用C++和Objective-C语法相结合的源文件.Objective-C++为C++增加了Objective-C添加到C的扩展.
Mac Dev Center文章补充说:
Apple的Objective-C编译器允许您在同一源文件中自由混合C++和Objective-C代码.这种Objective-C/C++语言混合称为Objective-C++.有了它,您可以使用Objective-C应用程序中的现有C++库.
Apple文章将Objective-C++称为一种语言.这是正确的吗?
我想知道以下内容:
是否有可能在不了解C/Objective-C的情况下学习和使用Objective-C++?
是否有任何好的书籍,网站,论坛等可以获得更多信息和/或帮助?
据您所知,在Objective-C++中是否有大型项目?
Stefan Arent.. 8
Objective-C++实际上只是将Objective-C与C++混合在一起.既然它允许来自两者的语法,你可以说它是一种新语言.
当我必须将Objective-C代码与一些C++库接口时,我主要使用ObjC++(.mm源文件).在这种情况下,能够调用C++很方便.我个人并不认识很多真正混合C++和Objective-C的人.
Objective-C++实际上只是将Objective-C与C++混合在一起.既然它允许来自两者的语法,你可以说它是一种新语言.
当我必须将Objective-C代码与一些C++库接口时,我主要使用ObjC++(.mm源文件).在这种情况下,能够调用C++很方便.我个人并不认识很多真正混合C++和Objective-C的人.
是的,你应该学习Objective-C++,当你想要发展竞争的通用力量(也就是人们愿意为它们支付的那么好)Apple应用程序.
在同一个文件中,Objective-C和C++结合起来确实没什么.
对于Objective-C,使用流行的苹果开发博客/邮件列表/新闻组中的任何一个.特别是Apple直接提供的那个.
对于C++,这是相同的,有数十个博客/邮件列表/入门教程.但是,如果你已经理解了编程,那么C及其Objective-C附加组件非常简单易学.C++是一个完全不同的复杂野兽.获取一些好书并学习它(10年后你将能够完全理解语言:-)但你可以用这方面的一小部分知识编写C++程序.
所以现在是一个神奇的问题,为什么你应该使用C++,当你可以逃避Objective-C.答案很简单.除了明显提到的现有C++库的包装之外,Objective-C首先是缓慢的 - 方法调用.通常的做法是在你的方法中做一些严肃的事情,以避免出现在这种语言中的运行时间.
但特别是对于容器,您应该考虑使用C++模板.矢量比NSArray快得多.如果您的数据集很大,您会感受到不同.此外,我发现C++容器更容易使用,因为它们避免了与Objective-C有关的类型转换.
在iPad和iPhone上使用缓慢的ARM CPU,这不是过早的优化.
遗憾的是,您不能混合使用C++和Cocoa类,因此C++应仅用于算法数据.对于GUI,您必须使用Cocoa和Objective-C类.
在C++和Objective-C之间取得适当的平衡是您作为Apple程序员开发所需技能的一部分.