Destructor and finalizer : Destructor « Class « Visual C++ .NET

Home
Visual C++ .NET
1.2D
2.Class
3.Collections
4.Data Type
5.Database ADO.net
6.Delegate
7.Development
8.File Directory
9.Function
10.Generics
11.GUI Form
12.Language Basics
13.Network
14.Reflection
15.Security
16.Statement
17.Structure
18.Thread
19.XML
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Visual C++ .NET » Class » Destructor 
Destructor and finalizer
 
#include "stdafx.h"
using namespace System;
using namespace System::Collections::Generic;

ref class MyClass{
    static List<MyClass^>^ instanceTrackingList;

    static MyClas(){
       instanceTrackingList = gcnew List<MyClass^>;
    }

    MyClass(String^ s)
    {
       Label = s;
       instanceTrackingList->Addthis );
    }

    property String^ Label;

    static int EnumerateInstances()
    {
       int i = 0;
       for each (MyClass^ r in instanceTrackingList)
       {
           i++;
           Console::WriteLiner->Label );
       }
       return i;
    }

    ~MyClass()   // destructor
    {
       this->!MyClass();
    }

    !MyClass()   // finalizer
    {
       instanceTrackingList->Removethis );
    }
};

int main(){
    MyClass r1("ABC");
    MyClass^ r2 = gcnew MyClass("XYZ");

    int count = MyClass::EnumerateInstances();
    Console::WriteLine("Object count: " + count);

    delete r2;
    count = MyClass::EnumerateInstances();
    Console::WriteLine("Object count: " + count);
}

   
  
Related examples in the same category
1.Destructor demo
2.Destructors and inheritance
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.