C++在目标C++中的应用
Usage of C++ in Objective C++?
C++和Objective C在Objective C++中有多少集成?我意识到ObjectiveC++同时编译C++和ObjectiveC代码,但这两种语言实际上是相互作用的吗?
例如,我可以创建目标C对象的模板吗?从C++类继承Objective C类怎么样?
我主要想问的是,语言是混合的,还是只是在同一个文件中一起编译?达到什么程度
使用Objective-C++构建应用程序是很常见的。您可以将Objective-C封装在C++代码中,但不能共享对象。例如,您不能在Objective-C中创建NSString对象并尝试从C++调用方法hasSuffix,反之亦然。因此,要在这两者之间共享内容,您需要使用C类型,如structs、chars、int等。这是因为Objective-C对象仅在Objective-C运行时环境中可用,而C++对象仅在C++运行时环境下可用。因此,他们唯一可以共享和交流的是C.
也许一个小例子会告诉你如何在这两者之间进行互动。
NSString * objcStr = [[NSString alloc] initWithString:@"Hello World!"];
std::string cppStr ([objcStr UTF8String]);
std::cout << cppStr;
看看Objective-C++的Objective-C语言指南部分和/或维基百科的文章。
为了回答你的具体问题,是的,语言可以"互动"。是的,您可以创建Objective-C对象的模板(id
只是一个指针),但不要期望将RAII与Objective-C目标一起使用。不,不能从C++类派生Objective-C类,也不能从Objective-C派生C++类。
您可以从Objective-C内部调用C++代码,反之亦然,但需要注意一些事项。看见Objective-C++的支持程度如何?有关更多信息,
相关文章:
- 试图在visual studio上用C++创建一个桌面应用程序
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- c++r值引用应用于函数指针
- 在C应用程序中运行C++(带有STL)函数
- 使用VerQueryValue检索应用程序的文件描述
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用调试/崩溃报告将应用程序部署到客户端
- C++控制台应用程序阻止退出
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 将应用程序从32位移植到64位时出现问题
- 有没有任务栏API可以立即应用注册表更改
- 如何改变c++应用程序的视觉效果
- WM_CTLCOLORSTATIC从未在WIN32应用程序中触发
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- phytec phyBOARD iMX-6在从闪存而不是SD卡运行qt5 opengles应用程序时表现不佳(FPS减半
- TMap::Emplace() 在应用现有密钥时会覆盖吗?
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 如何从Windows应用程序输出到标准?