C++ yapıcı metotlar (constructor)

C++ programlama dilinde “constructor” veya “yapıcı metotlar” (constructor methods) sınıfların nesnelerinin oluşturulması sırasında otomatik olarak çağrılan özel fonksiyonlardır. Yapıcı metotlar, sınıfın bir örneği (nesnesi) oluşturulduğunda çağrılır ve genellikle bu nesnenin başlangıç durumunu ayarlamak için kullanılır.

Yapıcı metotlar şu özelliklere sahiptir:

  1. İsimleri sınıf ile aynıdır: Yapıcı metotların ismi sınıfın adı ile aynı olmalıdır.
  2. Dönüş tipi yoktur: Yapıcı metotların bir dönüş tipi yoktur. Başka bir deyişle, void veya herhangi bir başka tür belirtilmez.
  3. Parametreler alabilir: Yapıcı metotlar parametre alabilir, bu sayede nesne oluşturulurken başlangıç değerleri atanabilir.

Örnek bir sınıf ve yapıcı metot kullanımı şu şekildedir:

#include <iostream>
using namespace std;

class Araba {
public:
    // Yapıcı metot
    Araba(string marka, string model, int yil) {
        this->marka = marka;
        this->model = model;
        this->uretimYili = yil;
        cout << "Araba nesnesi oluşturuldu." << endl;
    }

    void bilgileriGoster() {
        cout << "Marka: " << marka << endl;
        cout << "Model: " << model << endl;
        cout << "Üretim Yılı: " << uretimYili << endl;
    }

private:
    string marka;
    string model;
    int uretimYili;
};

int main() {
    // Araba sınıfından bir nesne oluşturulduğunda yapıcı metot çağrılır.
    Araba araba1("Toyota", "Corolla", 2022);

    // Nesnenin bilgilerini ekrana yazdırma
    araba1.bilgileriGoster();

    return 0;
}

Bu örnekte, Araba sınıfının yapıcı metodu, Araba nesnesi oluşturulduğunda çağrılır ve nesnenin özelliklerini başlatır. Bu özelliklere daha sonra bilgileriGoster fonksiyonu aracılığıyla erişilebilir.


Başka bir örnek üzerinden devam edelim. Aşağıda, bir sınıfın yapıcı metodu olmadan nasıl çalıştığını gösteren bir örnek bulunmaktadır:

#include <iostream>
#include <string>
using namespace std;

class Ogrenci {
public:
    // Yapıcı metod olmadan

    // Diğer sınıf fonksiyonları
    void bilgileriGoster() {
        cout << "Ogrenci Bilgileri: " << endl;
        cout << "Ad: " << ad << endl;
        cout << "Soyad: " << soyad << endl;
        cout << "Numara: " << numara << endl;
    }

private:
    string ad;
    string soyad;
    int numara;
};

int main() {
    // Ogrenci sınıfından bir nesne oluşturuldu.
    Ogrenci ogrenci1;

    // Nesnenin bilgilerini ekrana yazdırma
    ogrenci1.bilgileriGoster();

    return 0;
}

Bu örnekte, Ogrenci sınıfının bir yapıcı metodu yok. main fonksiyonunda Ogrenci sınıfından bir nesne oluşturulduğunda, sınıfın üye değişkenleri (ad, soyad, numara) varsayılan değerlerle başlatılır. Ancak, bu değerler genellikle istenmeyen değerlerdir (boş string ve 0 sayı değeri gibi).

Bu nedenle, sınıfınızın daha belirgin ve kontrol edilebilir bir başlangıç durumu olması için bir yapıcı metot kullanmak genellikle tercih edilen bir yaklaşımdır. Yapıcı metodun kullanılması, nesnelerin başlangıç durumlarını belirlemek ve sınıfın doğru şekilde kullanılmasını sağlamak açısından daha iyi bir programlama pratiğidir.


#include <iostream>
#include <string>
using namespace std;

class Kitap {
public:
    // Yapıcı metot
    Kitap(string ad, string yazar, int sayfaSayisi) {
        this->ad = ad;
        this->yazar = yazar;
        this->sayfaSayisi = sayfaSayisi;
        cout << "Kitap nesnesi oluşturuldu." << endl;
    }

    // Bilgileri gösteren fonksiyon
    void bilgileriGoster() {
        cout << "Kitap Adı: " << ad << endl;
        cout << "Yazar: " << yazar << endl;
        cout << "Sayfa Sayısı: " << sayfaSayisi << endl;
    }

private:
    string ad;
    string yazar;
    int sayfaSayisi;
};

int main() {
    // Kitap sınıfından bir nesne oluşturulduğunda yapıcı metot çağrılır.
    Kitap kitap1("1984", "George Orwell", 328);

    // Nesnenin bilgilerini ekrana yazdırma
    kitap1.bilgileriGoster();

    return 0;
}

Bu örnekte, Kitap sınıfının yapıcı metodu, Kitap nesnesi oluşturulduğunda çağrılır ve nesnenin özelliklerini başlatır. Ardından, bilgileriGoster fonksiyonu ile nesnenin özelliklerini ekrana yazdırabiliriz. Bu sayede, sınıfın yapıcı metodu nesnenin oluşturulması sırasında otomatik olarak çağrılarak başlangıç değerleri atanmış olur.


Constructor (yapıcı metotlar) kullanmak, C++ programlama dilinde zorunlu değildir. Ancak, bir sınıfın yapıcı metodu olmaması durumunda, nesnelerin başlangıç durumları belirsiz olabilir. Yapıcı metodun eksik olması durumunda, nesne oluşturulduğunda üye değişkenlerine atanacak varsayılan değerler olmayabilir.

Eğer bir sınıfın özel bir başlangıç durumu veya varsayılan değerleri varsa, bu durumda bir yapıcı metodun kullanılması genellikle faydalıdır. Bu, nesnenin oluşturulma anında belirli bir duruma getirilmesini sağlar.

Ancak, eğer siz bir sınıf oluştururken özel bir başlangıç durumuna ihtiyaç duymuyorsanız veya sınıfınızın üye değişkenlerine varsayılan değerler atanabiliyorsa, o zaman özel bir yapıcı metot kullanmamanız da mümkündür. Yapıcı metodun olmaması durumunda, C++ dilinde varsayılan bir yapıcı metot otomatik olarak oluşturulur.

class Ornek {
public:
    // Varsayılan yapıcı metod
    Ornek() {
        // Bu yapıcı metod otomatik olarak çağrılır.
    }

    // Diğer sınıf fonksiyonları...
};

Yukarıdaki örnekte, Ornek sınıfının bir yapıcı metodu var, ancak bu yapıcı metot boş. Eğer siz bir yapıcı metot tanımlamazsanız, C++ dilinde varsayılan bir yapıcı metot otomatik olarak oluşturulur.

Ads Blocker Image Powered by Code Help Pro

Reklam Engelleyici Algılandı!

Reklamları engellemek için uzantı kullandığınızı tespit ettik.

Lütfen bu reklam engelleyiciyi devre dışı bırakarak ya da sitemize izin vererek bize destek olun.

Dikkat: VPN eklentiniz üzerinde de reklam engelleyici olabilir.