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! 😎