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 的组件扩展