Program: przedstawiający działanie dekonstruktora.
Jak w opisie programu. Szczegółowe przetestowanie dekonstruktora.
Kompilator: Dev C++
Kod programu:
//Przedstawienie dekonstruktora - klasy, metody, wskaźniki
#include <cstdlib>
#include <iostream>
#include <string.h>
using namespace std;
class gadula {
char tekst[40];
int licz;
public:
gadula(int k,char*opis);
~gadula(void);
int zwracaj() {return licz;}
void schowaj(int x) {licz=x;}
void coto()
{cout<<tekst<<" ma wartosc "<<licz<<endl; }
};
gadula::gadula(int k, char *opis)
{strcpy(tekst,opis);
licz=k;
cout<<"Konstruuje tekst "<<tekst<<endl;
}
gadula::~gadula()
{
cout<<"pracuje dekonstruktor (sprzata) "<<tekst<<endl;
}
gadula a(1,"obiekt a(globalny)");
gadula b(2,"obiekt b(globalny)");
int main(int argc, char *argv[])
{
a.coto();
b.coto();
{
cout<<" poczatek lokalnego zakresu -------\n";
gadula c(30,"obiekt c(lokalny)");
gadula a(40,"obiekt c(lokalny)");
cout<<"Aktualne wartosci:\n";
a.coto(); b.coto(); c.coto();
cout<<"Do zaslonietego obiekt globalnego mozna sie dostac";
::a.coto();
cout<<"Koniec zakresu lokalnego ---------\n";
}
cout<<"Juz jestem blokiem\n";
a.coto(); b.coto();
cout<<"Sam uruchamiam destruktor obiktu a";
a.gadula::~gadula();
cout<<"Koniec programu!!!!!\n";
system("PAUSE");
return EXIT_SUCCESS;
}