// ----------------------------------
// Deklaracja klasy TKlasa
// ----------------------------------

class TKlasa
{
    public:        // Metody uytkowe
        void PrzydzielZasoby();
        
    public:        // Metoda zwalniajca obiekt
        static void Zwolnij( TAny* aPtr ); 
        
    private:    // Metoda zwalniajca obiekt
        void ZwolnijZasoby();
        
    private:    // Pola klasy
        // ...
};

// ----------------------------------
// Definicja klasy TKlasa
// ----------------------------------

void TKlasa:: PrzydzielZasoby()
{
    // Operacje
}

void TKlasa::Zwolnij( TAny* aPtr )
{
    if( aPtr )
    {
        TKlasa* obiekt = static_cast< TKlasa* >( aPtr );
        obiekt->ZwolnijZasoby();
    }
}

void TKlasa::ZwolnijZasoby()
{
    // Zwalnianie zasobw
}

// ----------------------------------
// Uycie klasy TKlasa
// ----------------------------------

TKlasa obiekt;
obiekt.PrzydzielZasoby();
CleanupStack::PushL( TCleanupItem( TKlasa::Zwolnij, &obiekt ) );

// Operacje, ktre mog wygenerowa wyjcie.

CleanupStack::PopAndDestroy();
