Mega Code Archive

 
Categories / Visual C++ .NET / Class
 

Finalizers and inheritance

#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(); }