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