我想制作一款iPhone应用,但我打算用C ++制作这个框架。是否可以在Objective-C ++中使用模板之类的东西。我想问题是,我可以使用boost吗?
答案 0 :(得分:13)
是否可以在Objective-C ++中使用模板之类的东西。
是的,但您需要注意如何在纯C ++层和Objective-C ++代码之间混合类型和接口。请记住图层之间的界限,您需要将std::string
等类型转换为NSString
,等等。
例如,您可以在纯C ++中实现核心游戏引擎,并且只需在Objective-C ++中实现控制器和GUI代码。然后Obj-C ++代码是纯C ++引擎和Cocoa之间的粘合剂。
我想真的问题是,我可以使用提升吗?
鉴于iPhone OS是OS X的一个子集,仍然提供完整的POSIX层,大多数Boost库应该正常工作。它应该就像编写Darwin代码一样。
Objective-C ++中有许多限制需要注意(直接来自Objective-C 2.0 Reference Guide):
答案 1 :(得分:10)
Objective C ++支持所有C ++。应该可以使用boost,但您可能需要移植一些与平台相关的东西。
答案 2 :(得分:4)
应该指出,你不能只在Objective-C ++中用C ++做你能做的所有事情。例如,您无法从Objective-C类调用C ++对象上的虚函数。一旦你调用了C / C ++函数,你就可以做任何你想做的事。
答案 3 :(得分:3)
Objective C ++是C ++的超集。你可以在C / C ++中做的一切都可以在Obj-C ++中完成。 “目标”部分包含一个Smalltalk-esque消息系统和C ++的其他附加功能。
答案 4 :(得分:2)
Objective C中的C ++对象不一定像C ++中那样。例如,构造函数和析构函数不会自动调用,并且(我认为)您无法实现虚拟方法...
答案 5 :(得分:1)