如何保留C++;内存中的对象? 对象Object C类中C++对象的对象生命周期是什么,如何保持它的内存? 我尝试了不透明结构,创建实例,但总是导致null。

如何保留C++;内存中的对象? 对象Object C类中C++对象的对象生命周期是什么,如何保持它的内存? 我尝试了不透明结构,创建实例,但总是导致null。,c++,objective-c,ios,memory-management,C++,Objective C,Ios,Memory Management,您可以在Objto-C类中拥有C++对象,通过在C++代码中创建一个 >新的实例,在您的代码> init < /C>方法中,将其分配给IVAR,然后在 -DeLoC/,调用删除在IVAR上: @interface SomeClass : NSObject { SomeCPPClass *cpp_object; } @end @implementation SomeClass - (id) init { self = [super init]; if(self) {

您可以在Objto-C类中拥有C++对象,通过在C++代码中创建一个<代码> >新的<代码>实例,在您的代码> init < /C>方法中,将其分配给IVAR,然后在 -DeLoC/,调用<代码>删除<代码>在IVAR上:

@interface SomeClass : NSObject {
  SomeCPPClass *cpp_object;
}
@end

@implementation SomeClass 

- (id) init {
   self = [super init];
   if(self) {
      cpp_object = new SomeCPPClass();
   }
   return self;
}

- (void) dealloc {
  delete cpp_object;
  [super dealloc];
}

@end    

如果你的C++对象将有与包含它的ObjtoVc对象相同的生命周期,你可以简单地将C++对象(而不是指针)放在Objtovi-C类中:

@interface MyClass {
    CppObject myObject;
}
@end

如何将它分配给ivar,你能给我更多的细节吗?这是我已经做过的,但它不起作用。这个类中的函数看到我的前一个问题了吗?构造函数会被调用吗?@WTP:是的,构造函数会被调用。它的行为与你期望C++对象的行为完全一样。