Visual C++ .NET/Language Basics/gcroot
auto gcroot
<source lang="csharp">
- include "stdafx.h"
- include <msclr/gcroot.h>
- include <msclr/auto_gcroot.h>
using namespace System; using namespace msclr; ref class MyClass {
public: void f() { Console::WriteLine("managed member function"); } ~MyClass() { Console::WriteLine("destructor"); }
}; class N {
gcroot<MyClass^> r_gcroot; auto_gcroot<MyClass^> r_auto_gcroot; public: N() { r_gcroot = gcnew MyClass(); r_gcroot->f(); r_auto_gcroot = gcnew MyClass(); r_auto_gcroot->f(); }
}; int main() {
N n;
}
</source>
gcroot and auto gcroot
<source lang="csharp">
- include "stdafx.h"
- include <msclr/gcroot.h>
- include <msclr/auto_gcroot.h>
using namespace System; using namespace msclr; ref class MyClass {
public: void f() { Console::WriteLine("managed member function"); } ~MyClass() { Console::WriteLine("destructor"); }
}; int main() {
gcroot<MyClass^> r_gcroot; auto_gcroot<MyClass^> r_auto_gcroot; r_gcroot = gcnew MyClass(); r_gcroot->f(); r_auto_gcroot = gcnew MyClass(); r_auto_gcroot->f();
}
</source>