![](/img/trans.png)
[英]C++: how do I create an object in stack memory that points to the object I am generating it from?
[英]How do I retain a C++ object in Memory?
Objective-C类中C ++对象的对象生命周期是什么,以及如何将其保存在内存中?
我尝试了不透明的结构,创建实例,但总是导致null。
您可以在Objective-C类中拥有一个C ++对象,方法是在init
方法中创建一个new
的C ++类实例,将其分配给ivar,然后在-dealloc
,在ivar上调用delete
:
@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 ++对象与包含它的Objective-C对象具有相同的生命周期,你可以简单地将C ++对象(不是它的指针)放在Objective-C类中:
@interface MyClass {
CppObject myObject;
}
@end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.