#include "stdafx.h"
using namespace System;
ref class Base
{
public:
Base() { }
~Base() { Console::WriteLine("~Base"); this->!Base(); }
!Base() { Console::WriteLine("!Base"); }
};
ref class Derived : Base
{
public:
Derived() { }
~Derived() { Console::WriteLine("~Derived"); this->!Derived(); }
!Derived() { Console::WriteLine("!Derived"); }
};
void F()
{
Derived d;
}
void G()
{
Derived^ dh = gcnew Derived();
}
int main()
{
F();
G();
Console::WriteLine("Collecting after G()");
GC::Collect();
}