我想制作一个 iPhone 应用程序,但我打算用 C++ 制作框架。是否可以在 Objective-C++ 中使用模板之类的东西。我想真正的问题是,我可以使用 boost 吗?
最佳答案
Is it possible to use things like templates in Objective-C++.
是的,但是您需要注意如何在纯 C++ 层和 Objective-C++ 代码之间混合类型和接口(interface)。请记住层与层之间的边界,您需要在其中将诸如 std::string
之类的类型转换为 NSString
等。
例如,您可以用纯 C++ 实现核心游戏引擎,而只用 Objective-C++ 实现 Controller 和 GUI 代码。那么 Obj-C++ 代码就是纯 C++ 引擎和 Cocoa 之间的粘合剂。
I guess really the question is, can I use boost?
鉴于 iPhone OS 是 OS X 的一个子集,它仍然提供完整的 POSIX 层,大多数 Boost 库应该工作得很好。它应该就像编写 Darwin 代码一样。
需要注意 Objective-C++ 中的许多限制(直接取自 Objective-C 2.0 Reference Guide ):
- 不能使用 Objective-C 语法调用 C++ 对象
- 您不能向 Objective-C 对象添加构造函数或析构函数
- 您不能互换使用关键字 this 和 self
- 类层次结构是分开的; C++ 类不能继承 Objective-C 类,Objective-C 类不能继承 C++ 类
- 在 Objective-C 代码中抛出的异常无法在 C++ 代码中捕获,反之,在 C++ 代码中抛出的异常无法在 Objective-C 代码中捕获。
关于iphone - Objective-C++ 支持多少 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/740989/