21 Mart 2025 Cuma

C++ Constructor Overloading Nedir ?


C++'ta "constructor overloading" (yapıcı fonksiyon aşırı yüklemesi), bir sınıfın birden fazla yapıcı fonksiyona sahip olması anlamına gelir. Bu yapıcı fonksiyonlar, aynı isme (sınıfın ismi) sahip olmalarına rağmen, farklı parametre listelerine sahiptirler.

Neden Constructor Overloading Kullanılır?

  • Esneklik: Nesneleri farklı şekillerde başlatma imkanı sunar. Örneğin, bir nesneyi varsayılan değerlerle, belirli değerlerle veya başka bir nesneden kopyalayarak oluşturabilirsiniz.
  • Kodun okunabilirliğini artırır: Farklı başlatma senaryoları için ayrı yapıcı fonksiyonlar tanımlayarak, kodun daha anlaşılır olmasını sağlayabilirsiniz.
  • Varsayılan değerler: Bazı parametreler için varsayılan değerler tanımlayarak, nesne oluşturma sürecini basitleştirebilirsiniz.
Constructor Overloading Nasıl Çalışır?

C++ derleyicisi, nesne oluşturulurken hangi yapıcı fonksiyonun çağrılacağını, sağlanan argümanların türüne ve sayısına göre belirler. Bu işleme "fonksiyon aşırı yükleme çözümü" (function overload resolution) denir.

Örnek:

C++

#include <iostream>
#include <string>

class Ogrenci {
private:
std::string ad;
int yas;

public:
// Varsayılan yapıcı fonksiyon (no-argument constructor)
Ogrenci() : ad("Bilinmiyor"), yas(0) {}

// Parametreli yapıcı fonksiyon
Ogrenci(std::string isim, int ogrYas) : ad(isim), yas(ogrYas) {}

//Sadece isim parametreli yapıcı fonksiyon
Ogrenci(std::string isim) : ad(isim), yas(0) {}

void bilgileriGoster() {
std::cout << "Ad: " << ad << ", Yas: " << yas << std::endl;
}
};

int main() {
Ogrenci ogrenci1; // Varsayılan yapıcı fonksiyon çağrılır
Ogrenci ogrenci2("Ali", 20); // Parametreli yapıcı fonksiyon çağrılır
Ogrenci ogrenci3("Ayşe"); // Tek parametreli yapıcı fonksiyon çağrılır.

ogrenci1.bilgileriGoster();
ogrenci2.bilgileriGoster();
ogrenci3.bilgileriGoster();

return 0;
}

Açıklama:

  • Ogrenci(): Varsayılan yapıcı fonksiyondur. Herhangi bir parametre almaz ve ad ve yas değişkenlerine varsayılan değerler atar.
  • Ogrenci(std::string isim, int ogrYas): İki parametre alan yapıcı fonksiyondur. isim ve ogrYas parametrelerini kullanarak ad ve yas değişkenlerini başlatır.
  • Ogrenci(std::string isim): tek parametre alan yapıcı fonksiyondur. isim parametresini kullanarak ad değişkenini başlatır, yas değişkenini 0 olarak başlatır.
  • main() fonksiyonunda, farklı yapıcı fonksiyonlar kullanılarak üç Ogrenci nesnesi oluşturulur. Derleyici, hangi yapıcı fonksiyonun çağrılacağını, sağlanan argümanlara göre belirler.


 

Benzer Yayınlar

C++ Constructor Overloading Nedir ?
4/ 5
Oleh

Abone Olun

Yazılarımızı beğeniyor musunuz?Abone Olun Yazılarımı Kaçırmayın.

Lütfen yorum yaparken şunlara dikkat ediniz:

Küfürlü, siyasi veya huzur bozucu yorumlar yapmamaya,
Reklam, spam gibi yorumlar yapmamaya.