如何从 Objective-C 类中调用 C++ 构造函数?
class CppClass {
public:
CppClass(int arg1, const std::string& arg2): _arg1(arg1), _arg2(arg2) { }
// ...
private:
int _arg1; std::string _arg2;
};
@interface ObjC: NSObject {
CppClass _cppClass;
}
@end
@implementation ObjC
- (id)init
{
self = [super init];
if ( self )
{
// what is the syntax to call CppClass::CppClass(5, "hello") on _cppClass?
}
return self;
}
@end
最佳答案
当我最终遇到默认构造函数没有削减它的情况时,我将实例变量设为指针,然后在 init
方法中使用 new
和delete
在dealloc
方法中。
实际上,为 Objective-C 实例变量调用默认构造函数是相对较新的事情。
没有 Objective-C 语言的规范,更不用说 Objective-C++ 扩展的规范了。 Apple 确实发布了一份名为 The Objective-C Programming Language 的文件,但它几乎没有提到 C++,所以当你需要澄清一些不明显的事情时,你常常只能靠自己了。 Clang 的人mailing list不过,通常情况下了解得更多。
关于c++ - 从 Objective-C 类调用 C++ 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12467341/