c++ - 从 Objective-C 类调用 C++ 构造函数

标签 c++ objective-c

如何从 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 方法中使用 newdeletedealloc方法中。

实际上,为 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/

相关文章:

c++:如何初始化已使用 malloc 分配的 std::mutex?

iphone - 使用自定义名称将照片保存到 iPhone 相机胶卷

ios - 当应用程序进入后台或模拟器锁定时,UILocalNotification 不起作用

c++ - 可以声明 C++ 函数以使返回值不能被忽略吗?

c++ - 声明指针变量的不同类型

c++ - 调用对象指针的虚函数引起的段错误

objective-c - 类 'Resources.h' 的重复接口(interface)定义

iphone - Spiky Memory "Healthy"是 App 的吗?

ios - 音频流播放: unable to change play/stop button image

C++ 模板 : override some, 但不是全部,默认参数?