@interface CppClassWrapper () @property (nonatomic) CppClass* cppClass; @end @implementation CppClassWrapper - (void)setStoredValue:(NSString*) storedValue { self.cppClass->storedValue = [storedValue UTF8String]; } - (NSString*)storedValue { return [NSString stringWithUTF8String:self.cppClass->storedValue]; } - (instancetype)initWithStoredValue:(NSString*)value { if ((self = [super init]) == nil) { return nil; } self.cppClass = new CppClass([value UTF8String]); return self; } - (void)dealloc { delete self.cppClass; } @end