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?
Neden Constructor Overloading Kullanılır?
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:
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:
C++ Constructor Overloading Nedir ?
4/
5
Oleh
WebYazilimciniz
Lütfen yorum yaparken şunlara dikkat ediniz:
Küfürlü, siyasi veya huzur bozucu yorumlar yapmamaya,
Reklam, spam gibi yorumlar yapmamaya.