Sobes.tech
Junior — Middle

Projelerinde sanal yıkıcılar kullanma deneyiminiz var mı?

sobes.tech yapay zeka

AI'dan gelen yanıt

C++'ta sanal yıkıcılar, nesneleri temel sınıfa işaretçi aracılığıyla silerken kaynakların doğru şekilde serbest bırakılması için kullanılır. Eğer sınıf sanal fonksiyonlara sahipse ve kalıtım düşünülüyorsa, yıkıcı sanal olmalıdır ki, temel işaretçiyle delete çağrıldığında türetilmiş sınıfın yıkıcısı çağrılabilsin.

Örnek:

class Base {
public:
    virtual ~Base() { std::cout << "Base yıkıcı" << std::endl; }
};

class Derived : public Base {
public:
    ~Derived() override { std::cout << "Derived yıkıcı" << std::endl; }
};

int main() {
    Base* obj = new Derived();
    delete obj; // Derived::~Derived() ve ardından Base::~Base() çağrılır
}

Projelerimde, bellek ve kaynakların doğru yönetimi için sanal yıkıcılar kullandım, böylece sızıntıları ve belirsiz davranışları önledim.