How can I call a C++ constructor from inside an Objective-C class?
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
If you're already using C++ in your ObjC, might as well make it a smart pointer, so you don't have to worry about adding the cleanup bits.
#include <memory>
@interface ObjC: NSObject {
std::unique_ptr<CppClass> _cppClass;
}
@end
@implementation ObjC
- (id)init
{
self = [super init];
if ( self )
{
_cppClass.reset(new CppClass(5, "hello"));
}
return self;
}
@end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With