首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Objective-C++支持多少C++

Objective-C++支持多少C++
EN

Stack Overflow用户
提问于 2009-04-11 23:40:02
回答 6查看 1.7K关注 0票数 6

我想做一个iPhone应用程序,但我计划用C++做这个框架。可以在Objective-C++中使用模板之类的东西吗?我想真正的问题是,我可以使用boost吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-04-11 23:42:54

Objective C++支持所有C++。应该可以使用boost,但您可能需要移植一些与平台相关的东西。

票数 10
EN

Stack Overflow用户

发布于 2009-10-02 09:08:10

可以在Objective-C++中使用模板之类的东西吗?

是的,但是您需要注意如何在纯C++层和Objective-C++代码之间混合类型和接口。请记住层之间的边界,在那里您需要将std::string等类型转换为NSString,等等。

例如,你可以用纯C++实现核心游戏引擎,只用Objective-C++实现你的控制器和图形用户界面代码。那么Obj-C++代码就是纯C++引擎和Cocoa之间的粘合剂。

我想真正的问题是,我可以使用boost吗?

鉴于POSIX是OS的一个子集,它仍然提供完整的iPhone层,因此大多数Boost库应该可以正常工作。它应该就像编写达尔文代码一样。

Objective-C++中有许多需要注意的限制(直接取自Objective-C 2.0 Reference Guide):

  • 您不能使用Objective-C语法调用C++对象
  • 您不能将构造函数或析构函数添加到Objective-C object
  • 您不能使用关键字this和self 类层次结构是分开的;C++类不能从Objective-C类继承,Objective-C类不能从C++类继承
    • 在Objective-C代码中引发的异常无法在C++代码中捕获,相反,在C++代码中引发的异常也无法在Objective-C代码中捕获。

    <代码>F218

票数 13
EN

Stack Overflow用户

发布于 2009-04-20 06:22:48

应该指出的是,你不能只用Objective-C++在C++中做所有你能做的事情。例如,您不能对Objective-C类中的C++对象调用虚函数。一旦你调用了一个C/C++函数,你就可以做任何你想做的事情。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/740989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档