Constructors ve Destructors: Nesne Oluşturma ve Yok Etme Süreçleri

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16

Constructor ve Destructor: Nesnenin Yaşam Döngüsü​


Bir nesne oluşturulduğunda bellekte yer ayrılması yetmez; başlangıç değerlerinin verilmesi ve kaynakların (bellek, dosya, ağ bağlantısı) hazırlanması gerekir. Aynı şekilde işi bittiğinde bu kaynakların temizlenmesi hayati önem taşır.



1. Constructor (Yapıcı Metot) Nedir?​


Bir sınıfın nesnesi oluşturulduğu anda otomatik olarak çalışan özel bir fonksiyondur.

İsmi: Sınıf ismiyle tamamen aynı olmalıdır.

Geri Dönüş Tipi: Hiçbir geri dönüş tipi (void bile) yoktur.

Amacı: Değişkenlere varsayılan değerler atamak veya gerekli ayarları yapmaktır.

C++:
class Oyuncu {
public:
string isim;
int saglik;

// Parametreli Constructor
Oyuncu(string ad, int hp) {
    isim = ad;
    saglik = hp;
    cout << isim << " oyuna girdi!" << endl;
}

};



2. Destructor (Yıkıcı Metot) Nedir?​


Nesnenin ömrü bittiğinde (kapsam dışına çıktığında veya delete edildiğinde) otomatik olarak çalışan fonksiyondur.

İsmi: Sınıf isminin başına tilde (~) işareti konularak tanımlanır.

Parametre Almaz: Aşırı yüklenemez (overload edilemez), her sınıfın sadece bir yıkıcısı olabilir.

Amacı: Dinamik olarak ayrılan bellekleri (new ile alınan yerleri) temizlemek veya açık dosyaları kapatmaktır.

C++:
class DosyaYonetici {
public:
~DosyaYonetici() {
cout << "Kaynaklar serbest birakildi, dosya kapatiliyor..." << endl;
}
};



3. Örnek: Bellek Yönetimi ile Kullanım​


Constructor ve Destructor'ın gerçek gücü, RAII (Kaynak Edinimi Başlatmadır) prensibinde ortaya çıkar.

C++:
class VeriYigini {
private:
int* dizi;
public:
VeriYigini(int boyut) {
dizi = new int[boyut]; // Yer ayir (Constructor)
cout << "Bellek ayrildi." << endl;
}

~VeriYigini() {
    delete[] dizi; // Yeri iade et (Destructor)
    cout << "Bellek temizlendi." << endl;
}

};



Constructor ve Destructor Karşılaştırması​


ÖzellikConstructor (Yapıcı)Destructor (Yıkıcı)
Çalışma ZamanıNesne oluşturulurken.Nesne yok edilirken.
ParametreAlabilir (Overload edilebilir).Asla alamaz.
SayıBirden fazla olabilir.Sadece bir adet olabilir.
GöreviBaşlatma ve kurulum.Temizlik ve sonlandırma.



Sonuç​


Constructor ve Destructor yapılarını doğru kullanmak, programınızın "bellek sızıntısı" (memory leak) yapmasını engellemenin en profesyonel yoludur. Özellikle dinamik bellek yönetimiyle uğraşıyorsanız, new yaptığınız her şeyi yıkıcı metotta delete etmek altın kuraldır.
 
Geri
Üst