Hogyan tudok törölni egy létrehozott objektumot c++ ban?
Azt tudom,hogy a destruktor akkor hívódik meg amikor kilepünk abból a függvényből amelyikben meghívtuk az objektum konstruktorát.
Ha rosszul tudom magyarázzátok el és meg tudnátok mondani,hogy hogyan hívjam meg a destruktort?
A destruktor akkor hívódik meg amikor meghívjuk, amennyiben dinamikusan példányosítottuk. Pl.:
A* b1 = new B; //Létrehozás
delete b1; //megszüntetés
Ha statikusan példányosítottuk akkor meg az adott blokkban/függvényben változókra érvényes módon, automatikusan hívódik a konstruktor és a destrukotor.
Leegyszerűsítve C++-ban háromféle objektum van ilyen szempontból.
Az egyik, a legegyszerűbb az automatikus változók, ezek akkor jönnek létre, amikor rájuk fut a vezérlés egy függvényben, és a blokk végén fordított sorrendben semmisülnek meg.
A másik a statikus változók, ezek a main előtt, tetszőleges sorrendben jönnek létre, és fordított sorrendben semmisülnek meg a main lefutása után.
És vannak a dinamikus változók, amiket new-al hozol létre, és akkor semmisülnek meg, amikor delete-t hívsz rá.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!