在 c++/cli 中设置指向指针的指针

Set a pointer to pointer in c++/cli

我有一个托管 class 并想在 create() 方法中设置本机 class。

ref class ManagedClass {

private:
    NativeClass* ptr = nullptr;    

public:
    void create()
    {
        NativeClass nativeClass;
        nativeClass.set(0);
        this->ptr = &nativeClass;
    }
};

然而,当 create() 为 运行 时,nativeClass 被删除。因此 this->ptr 变为空。如何让局部变量nativeClass不被删除?

当定义它们的函数 returns 时,局部变量将不复存在,并且任何记住的指向此类局部变量的指针都会变得无效。这在 C++/CLI 与非托管 C++ 中没有什么不同。

要创建一个在 create 调用之后持续存在的对象,动态分配它并使用 ptr = new NativeClass(); 保存指向它的指针(然后不要忘记 delete ptr; 当不再需要)。