CodeBlanks Logo Icon CodeBlanks

Yapıcı metot

Sınıf yapıcı metodunu (constructor) tanımlamayı öğrenirsin.

Yapıcı metot

Bir yapıcı metot (constructor), nesne oluşturulurken otomatik çağrılan özel bir üye fonksiyondur. Sınıfla aynı isme sahiptir ve dönüş türü yoktur. Amacı üye değişkenlere ilk değer vermektir.

Örnek: class Timer { public: Timer() { seconds = 0; } int seconds; };. Burada Timer() yapıcı metottur. Timer t; yazdığında bu metot otomatik çağrılır ve seconds sıfırlanır. Elle atama yapmana gerek kalmaz. Parametresiz yapıcıya varsayılan yapıcı (default constructor) denir.

Otomatik çağrı

Yapıcı metot main içinden çağrılmaz; nesne tanımlandığı an otomatik çalışır. Timer t; satırı hem bir nesne oluşturur hem de Timer() yapıcısını çalıştırır. Parantez eklemene gerek yoktur.

Birden fazla nesne tanımlarsan her biri için ayrı yapıcı çağrılır: Timer a, b; iki kez çalıştırır. Yapıcı metot sınıfın public bölümünde olmalıdır; aksi halde Timer t; derleme hatası verir. Üyeler yapıcı çağrılmadan önce bellekte ayrılır; yapıcı onları anlamlı değerlerle doldurur.

Uygulama Timer sınıfına varsayılan yapıcı ekle

Timer sınıfını tanımla. public: altına Timer() { seconds = 0; } yapıcı metodunu ve int seconds; üye değişkenini ekle. main içinde bir örnek oluştur ve std::cout ile seconds'u yazdır.

Başlangıç kodu

main.cpp
#include <iostream>

// Timer sınıfını tanımla

int main() {
    // Timer örneği oluştur ve seconds yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>

class Timer {
public:
    Timer() {
        seconds = 0;
    }
    int seconds;
};

int main() {
    Timer t;
    std::cout << t.seconds;
    return 0;
}

Beklenen çıktı

0

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir yapıcı metodun başlığında dönüş türü neden yazılmaz?

main.cpp
Timer() { seconds = 0; }
  • Çünkü void kabul edilir
  • Çünkü yapıcı metot değer döndürmez Doğru cevap
  • Çünkü derleyici otomatik ekler
  • Çünkü int varsayılır

Açıklama: Yapıcı metot hiçbir değer döndürmez, dönüş türü yoktur.

2 Yapıcı metot adını tamamla

Soru
class Timer { public: ____() { seconds = 0; } int seconds; };
Cevap
class Timer { public: Timer() { seconds = 0; } int seconds; };

Açıklama: Yapıcı metot sınıfla aynı isme sahiptir: Timer().

3 Özelliği anlamına eşle

Kavram Anlamı
Sınıfla aynı isim Yapıcı metot adı
Dönüş türü yok Yapıcı metot imzası
Nesne tanımlanınca Otomatik çağrı anı
public bölümde Erişilebilirlik

Orta seviye bölümündeki tüm dersler