3.4 Yapıcılar (Constructors)
C++'da yapıcılar, bir sınıfın nesneleri oluşturulduğunda otomatik olarak çağrılan özel metotlardır. Yapıcılar, nesnenin başlangıç değerlerini belirlemek ve nesne oluşturulurken gerekli olan diğer işlemleri gerçekleştirmek için kullanılır. Yapıcılar, sınıfın adını taşır ve dönüş tipi yoktur.
Yapıcıların Özellikleri
İsim: Yapıcılar, sınıfın adıyla aynı isme sahiptir.
Dönüş Tipi: Yapıcıların dönüş tipi yoktur, bu yüzden herhangi bir tip belirtilmez.
Parametreler: Yapıcılar, nesne oluşturulurken başlangıç değerlerini almak için parametre alabilir.
Varsayılan Yapıcı: Parametre almayan bir yapıcı, varsayılan yapıcı olarak adlandırılır.
Yapıcı Örnekleri
Aşağıda, C++'da yapıcıların nasıl tanımlandığına ve kullanıldığına dair bir örnek bulunmaktadır:
#include <iostream>
#include <string>
class Araba {
private:
std::string marka;
int yil;
public:
// Varsayılan Yapıcı
Araba() {
marka = "Bilinmiyor";
yil = 0;
}
// Parametreli Yapıcı
Araba(std::string m, int y) {
marka = m;
yil = y;
}
// Bilgi gösterme metodu
void bilgiGoster() {
std::cout << "Marka: " << marka << ", Yıl: " << yil << std::endl;
}
};
Yapıcıları Kullanma
Yukarıdaki sınıfı kullanarak nesneler oluşturabiliriz:
int main() {
// Varsayılan yapıcı ile nesne oluşturma
Araba araba1;
araba1.bilgiGoster(); // Çıktı: Marka: Bilinmiyor, Yıl: 0
// Parametreli yapıcı ile nesne oluşturma
Araba araba2("Toyota", 2020);
araba2.bilgiGoster(); // Çıktı: Marka: Toyota, Yıl: 2020
return 0;
}
Çoklu Yapıcılar (Overloading)
C++'da bir sınıf birden fazla yapıcıya sahip olabilir. Bu, yapıcı aşırı yükleme (constructor overloading) olarak adlandırılır. Aşağıda, bir sınıfın birden fazla yapıcıya sahip olduğu bir örnek verilmiştir:
class Kisi {
private:
std::string isim;
int yas;
public:
// Varsayılan yapıcı
Kisi() {
isim = "Bilinmiyor";
yas = 0;
}
// Parametreli yapıcı
Kisi(std::string i, int y) {
isim = i;
yas = y;
}
// Bilgi gösterme metodu
void bilgiGoster() {
std::cout << "İsim: " << isim << ", Yaş: " << yas << std::endl;
}
};
Yukarıdaki sınıfı kullanarak nesneler oluşturabiliriz:
int main() {
Kisi kisi1; // Varsayılan yapıcı
kisi1.bilgiGoster(); // Çıktı: İsim: Bilinmiyor, Yaş: 0
Kisi kisi2("Ali", 26); // Parametreli yapıcı
kisi2.bilgiGoster(); // Çıktı: İsim: Ali, Yaş: 26
return 0;
}
Sonuç
C++'da yapıcılar, nesnelerin başlangıç değerlerini ayarlamak ve nesne oluşturma sürecini yönetmek için kritik bir rol oynar. Yapıcılar, hem varsayılan hem de parametreli şekilde tanımlanabilir ve birden fazla yapıcı ile aşırı yüklenebilir.
Last updated
Was this helpful?