添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

ref new 分配的类型实例的内存会自动解除分配。

如果无法分配内存,ref new 操作抛出 OutOfMemoryException

若要详细了解如何分配和解除分配本机 C++ 类型的内存,请参阅 new 和 delete 运算符

Windows 运行时

ref new 可用于为要自动管理其生存期的 Windows 运行时对象分配内存。 对象会在其引用计数变为零(这会在引用的最后一个副本超出范围之后发生)时自动释放。 有关详细信息,请参阅 ref class 和 ref struct

编译器选项: /ZW

公共语言运行时

托管类型(引用类型或值类型)的内存由 gcnew 分配,并使用垃圾回收来解除分配。

编译器选项: /clr

下面的示例使用 gcnew 分配 Message 对象。

// mcppv2_gcnew_1.cpp
// compile with: /clr
ref struct Message {
   System::String^ sender;
   System::String^ receiver;
   System::String^ data;
int main() {
   Message^ h_Message  = gcnew Message;
  //...

下面的示例使用 gcnew 创建装箱值类型以供使用(如引用类型)。

// example2.cpp : main project file.
// compile with /clr
using namespace System;
value class Boxed {
    public:
        int i;
int main()
    Boxed^ y = gcnew Boxed;
    y->i = 32;
    Console::WriteLine(y->i);
    return 0;

适用于 .NET 和 UWP 的组件扩展