C++ Constructor (Yapıcı Metotlar) Nedir?

C++ programlamada constructor (yapıcı metot), bir sınıfın nesnesi oluşturulduğunda otomatik olarak çalışan özel bir fonksiyondur. Genellikle nesnenin başlangıç değerlerini ayarlamak için kullanılır. Eğer bir sınıf için constructor tanımlamazsak, C++ derleyicisi varsayılan (default) constructor oluşturur.

Constructor’ın Genel Yapısı

Bir constructor’ı normal fonksiyonlardan ayıran bazı kurallar vardır:
✅ Constructor, sınıf adıyla aynı isme sahip olmalıdır.
Geri dönüş tipi (void, int vs.) bulunmaz.
Otomatik olarak çağrılır, elle çağırmaya gerek yoktur.
Overload (aşırı yükleme) edilebilir, yani farklı parametrelerle birden fazla constructor yazılabilir.

Basit Bir Constructor Örneği

Aşağıdaki örnekte, bir “Araba” sınıfı oluşturuyoruz ve bu sınıfın bir constructor’ı var. Bu constructor çalıştırıldığında, marka ve model bilgileri atanıyor.

#include <iostream>
using namespace std;

class Araba {
public:
    string marka;
    string model;

    // Constructor (yapıcı metot)
    Araba(string m, string mdl) {
        marka = m;
        model = mdl;
    }

    void BilgiGoster() {
        cout << "Araba: " << marka << " " << model << endl;
    }
};

int main() {
    // Constructor otomatik çalışıyor
    Araba araba1("Toyota", "Corolla");
    araba1.BilgiGoster();

    Araba araba2("BMW", "X5");
    araba2.BilgiGoster();

    return 0;
}

Çıktı:

Araba: Toyota Corolla  
Araba: BMW X5  

Gördüğünüz gibi, Araba sınıfından bir nesne oluşturduğumuzda constructor otomatik olarak çalışıyor ve nesnenin özellikleri atanıyor.


Constructor Çeşitleri

C++’ta 3 farklı türde constructor bulunur:

1. Varsayılan (Default) Constructor

Eğer bir sınıf içinde constructor tanımlanmazsa, C++ otomatik olarak boş bir constructor oluşturur. Ama biz de kendimiz boş bir constructor yazabiliriz:

class Insan {
public:
    Insan() {
        cout << "Bir insan nesnesi oluşturuldu!" << endl;
    }
};


2. Parametreli Constructor

Bir nesne oluştururken başlangıç değerleri vermek istiyorsak parametreli constructor kullanırız.

class Ogrenci {
public:
    string isim;
    int yas;

    // Parametreli constructor
    Ogrenci(string ad, int y) {
        isim = ad;
        yas = y;
    }

    void BilgiGoster() {
        cout << "Öğrenci: " << isim << ", Yaş: " << yas << endl;
    }
};

int main() {
    Ogrenci ogr1("Ahmet", 21);
    ogr1.BilgiGoster();
    return 0;
}

Çıktı:

Öğrenci: Ahmet, Yaş: 21  


3. Kopya Constructor (Copy Constructor)

Bir nesneyi başka bir nesneyle kopyalamak için kopya constructor kullanılır.

class Kitap {
public:
    string ad;
    Kitap(string kAd) {
        ad = kAd;
    }

    // Kopya constructor
    Kitap(const Kitap &orjinal) {
        ad = orjinal.ad;
    }

    void BilgiGoster() {
        cout << "Kitap: " << ad << endl;
    }
};

int main() {
    Kitap kitap1("C++ Programlama");
    Kitap kitap2 = kitap1; // Kopya constructor çalışıyor

    kitap1.BilgiGoster();
    kitap2.BilgiGoster();
    
    return 0;
}

Çıktı:

Kitap: C++ Programlama  
Kitap: C++ Programlama  

Burada kitap2, kitap1 nesnesinin birebir kopyası olarak oluşturuldu.


Sonuç

Constructor’lar, C++ programlamada nesne oluşturmayı kolaylaştıran önemli bir yapıdır. Eğer bir sınıfın başlangıç değerleri varsa, constructor kullanarak kodunuzu daha düzenli ve anlaşılır hale getirebilirsiniz.

Bu yazıda constructor nedir, nasıl kullanılır, farklı türleri nelerdir gibi konulara detaylı şekilde değindik. Umarım faydalı olmuştur! 😎

guest
0 Yorum
Eskiler
En Yeniler Beğenilenler
Inline Feedbacks
View all comments
0
YORUM YAPx