Junior — Middle
Da li imate iskustva u korišćenju virtuelnih destruktora u vašim projektima?
sobes.tech АИ
Одговор од АИ
Virtuelni destruktori u C++ se koriste za pravilno oslobađanje resursa prilikom brisanja objekata putem pokazivača na osnovnu klasu. Ako klasa ima virtuelne funkcije i planira se nasleđivanje, destruktor mora biti virtuelan kako bi se prilikom poziva delete putem pokazivača na osnovnu klasu, pozvao destruktor izvedene klase.
Primer:
class Base {
public:
virtual ~Base() { std::cout << "Destruktor baze" << std::endl; }
};
class Derived : public Base {
public:
~Derived() override { std::cout << "Destruktor izvedene" << std::endl; }
};
int main() {
Base* obj = new Derived();
delete obj; // pozvaće se Derived::~Derived() i zatim Base::~Base()
}
U mojim projektima sam koristio virtuelne destruktore za pravilno upravljanje memorijom i resursima u hijerarhijama klasa, kako bih izbegao curenja i neodređeno ponašanje.