Objective-CクラスのC++オブジェクトのオブジェクトライフサイクルはどのくらいですか?また、それをどのようにメモリに保持していますか?メモリにC++オブジェクトを保持するにはどうすればよいですか?
インスタンスを作成すると不透明な構造が試されましたが、常にnullになります。
Objective-CクラスのC++オブジェクトのオブジェクトライフサイクルはどのくらいですか?また、それをどのようにメモリに保持していますか?メモリにC++オブジェクトを保持するにはどうすればよいですか?
インスタンスを作成すると不透明な構造が試されましたが、常にnullになります。
あなたは、その後-dealloc
で、IVARにdelete
を呼び出し、IVARに割り当て、あなたのinit
方法の内側にあなたのC++クラスのnew
インスタンスを作成して、Objective-CのクラスのC++オブジェクトを所有することができます。
@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オブジェクトと同じライフサイクルを持つ場合、Objective-CクラスにC++オブジェクト(ポインタではない)を置くだけでよい:
@interface MyClass {
CppObject myObject;
}
@end
コンストラクタは呼び出されますか? –
@WTP:はい、コンストラクタが呼び出されます。これは、C++オブジェクトの動作を期待するように動作します。 – Ferruccio
どのようにするか私はそれをivarに割り当てると、あなたは私に詳細を教えてもらえますか? – Ali
これは私がすでに行っていることですが、このクラスの関数は動作しません。私の過去の質問を参照してくださいhttp://stackoverflow.com/questions/5105177/call-c-class-オブジェクト内のc-one – Ali