Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
gcnew creates an instance of a managed type (reference or value type) on the garbage collected heap. The result of the evaluation of a gcnew expression is a handle (^) to the type being created.
Remarks
Managed types in C++/CLI are supported by garbage collection. Where native C++ types require using new and delete, managed C++ C++/CLI types need only gcnew.
Example
// mcppv2_gcnew_1.cpp
// compile with: /clr
ref struct Message {
System::String ^ sender, ^ receiver, ^ data;
};
int main() {
Message ^ h_Message = gcnew Message ;
}
It is possible to create an instance of a managed type, where the managed type contains a nested type other than a reference type:
// mcppv2_gcnew_2.cpp
// compile with: /clr
ref class MyClass {
public:
void Test() {}
value class Value_Nested_Class {
public:
int i;
};
};
int main() {
MyClass ^ h_MyClass = gcnew MyClass;
MyClass::Value_Nested_Class y;
y.i = 32;
System::Console::WriteLine(y.i);
}
32
Requirements
Compiler option: /clr