看看MSDN上的说明及例子吧 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.Example Copy Code // 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: Copy Code // 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;
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.Example
Copy Code
// 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: Copy Code
// 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);
}