Sobes.tech
Junior — Middle

Layihələrinizdə virtual destruktorlardan istifadə təcrübəniz varmı?

sobes.tech Süni İntellekt

AI-dan cavab

C++-də virtual destruktorlar obyektləri əsas sinfə işarəçi vasitəsilə silərkən resursların düzgün şəkildə azad olunması üçün istifadə olunur. Əgər sinifdə virtual funksiyalar varsa və irsiyyət nəzərdə tutulursa, destruktor virtual olmalıdır ki, delete çağırıldıqda əsas göstərici vasitəsilə, törəmə sinfin destruktoru çağrılsın.

Nümunə:

class Base {
public:
    virtual ~Base() { std::cout << "Base destruktor" << std::endl; }
};

class Derived : public Base {
public:
    ~Derived() override { std::cout << "Derived destruktor" << std::endl; }
};

int main() {
    Base* obj = new Derived();
    delete obj; // Derived::~Derived() və sonra Base::~Base() çağrılacaq
}

Layihələrimdə, yaddaş və resursların düzgün idarə olunması üçün virtual destruktorlardan istifadə etmişəm, bu da sızmalar və qeyri-müəyyən davranışların qarşısını alır.