[ LUGOS-PROG ] Klicanje destruktorja razreda

Matej Spiller Matej.Spiller at guest.arnes.si
Mon Aug 20 16:47:26 CEST 2001


Tukaj se ti ne klice destruktor. Zakaj. Ker si ti naredil kot lokalno
spremenljivko kot pointer. Pointer se ti zbrise ko gres ven, vendar pa tisto
na kar kaze se ti ne ker si to ti sam naredu (new Razred()). Ce bi napisu
Razred obj, bi se ti klicu defualt konstructor, ko bi pa sel ven iz main-a
pa bi se ti tudi pocistil. in bi se ti klical destructor. Ti moras na koncu
klicati delete obj, da se ti klice destructor, ker sele s tem zbrises
objekt. btw Exit(0) tukaj ni potreben, oziroma moras namesto njega napisati
return 0.

lp, Matej

> Recimo tole:
>
> int main() {
>   Razred *obj = new Razred();
>   ...
>   // ne klicemo delete obj;
>   exit(0);
> }
>
> ne klice destruktorja!
>
> Vem, da je tako programiranje obupno toda vseeno me zanima kdaj (ali
> sploh) in pod kaksnimi pogoji proces na koncu sam klice destruktorje za
> objekte, ki so se aktivni.
>
> Hvala in lp,
> Ales
>




More information about the lugos-prog mailing list