C+的使用+;在目标C和x2B中+;? 《目标C++》中C++和Object C的集成度有多少?我知道目标C++编译C++和目标C代码,但是语言实际上是相互作用的吗?

C+的使用+;在目标C和x2B中+;? 《目标C++》中C++和Object C的集成度有多少?我知道目标C++编译C++和目标C代码,但是语言实际上是相互作用的吗?,c++,objective-c,macos,C++,Objective C,Macos,例如,我可以创建一个Objective C对象的模板吗?从C++类继承目标C类如何? 我想问的基本问题是,这些语言是混合使用的,还是只是在同一个文件中一起编译?在何种程度上?> P>您可以从ObjuleC内部调用C++代码,反之亦然,并有一些警告。看见 有关更多信息,请参阅Objective-C++和/或Wikipedia上的Objective-C语言指南部分 要回答您的具体问题,是的,语言可以“交互”。是的,您可以创建Objective-C对象的模板(id只是一个指针),但不要期望将RAII用

例如,我可以创建一个Objective C对象的模板吗?从C++类继承目标C类如何?


我想问的基本问题是,这些语言是混合使用的,还是只是在同一个文件中一起编译?在何种程度上?

> P>您可以从ObjuleC内部调用C++代码,反之亦然,并有一些警告。看见


有关更多信息,请参阅Objective-C++和/或Wikipedia上的Objective-C语言指南部分


要回答您的具体问题,是的,语言可以“交互”。是的,您可以创建Objective-C对象的模板(
id
只是一个指针),但不要期望将RAII用于Objective-C对象。不,你不能从ObjuleC类派生C++类或C++类的Objy-C类。

使用ObjuleC++生成应用程序是很常见的。可以在C++代码周围包装Objto-C,但不能共享对象。例如,您无法在Objtovic中创建NSCORST对象,并试图调用方法HasPulx:从C++和VISA中调用。因此,为了共享这两个内容,需要使用C类型,如Struts、CARS、int等。这是因为Objtovi-C对象仅在Objy-C运行时环境中使用,C++对象仅在C++运行时环境中可用。所以他们唯一能分享和交流的东西就是C

也许一个小例子会告诉你如何在这两者之间进行互动

NSString * objcStr = [[NSString alloc] initWithString:@"Hello World!"];
std::string cppStr ([objcStr UTF8String]);
std::cout << cppStr;
NSString*objcStr=[[NSString alloc]initWithString:@“Hello World!”;
std::string cppStr([objcStr UTF8String]);

std::你能不能有点倒退。对于.mm文件,C++编译器编译Objtovi-C代码。对于.m文件,将使用C编译器。混合C++和ObjuleC类层次结构不是“正常”的(虽然我确信有技巧),但是你可以在另一个类中嵌入一个类实例。