Finalizers and inheritance : Inheritance « Class « Visual C++ .NET






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

   
  








Related examples in the same category

1.Derive a Class
2.Call a Base Method
3.Inherit a class