Visual C++ .NET/Language Basics/gcroot
auto gcroot
#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;
}
gcroot and auto gcroot
#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();
}