CodeBlanks Logo Icon CodeBlanks

static üye değişken

static üye değişkenin sınıf düzeyinde paylaşılmasını öğrenirsin.

static üye değişken

Bir static üye değişken, sınıfın tüm örnekleri arasında paylaşılan bir değişkendir. Her örnek kendi kopyasına değil, ortak tek bir kopyaya erişir.

Bir Player sınıfında static int count; tüm oyuncuların sayısını tutar. Static üye sınıf gövdesinde static anahtar kelimesiyle bildirilir. Ancak tanımı sınıf dışında ayrıca yapılır: int Player::count = 0;. Bu ayrım, bellekte tek bir kopyanın yaratılmasını sağlar. Static üyeye nesne olmadan Player::count biçiminde erişilir.

Static üyeye erişim

Static bir üyeye nesne üzerinden de (player.count), sınıf adıyla da (Player::count) erişilebilir. Ancak sınıf adıyla erişim daha iyidir; çünkü static üyeyi nesne olmadan da kullanabilirsin.

Önerilen yöntem: Player::count. Bu, üyenin tüm örneklerde ortak olduğunu vurgular. :: işareti kapsam çözümleme (scope resolution) işarecidir ve sınıfın üyelerine dışarıdan erişmeyi sağlar. Yapıcı metotta count++ yaparak her yeni nesnede sayacı artırabilirsin.

Uygulama Player sınıfına static sayaç ekle

Player sınıfını tanımla. public: altına static int count; üye değişkeni ekle. Yapıcı metotta count++ yap. Sınıf dışında int Player::count = 0; tanımını yaz. main içinde iki Player nesnesi oluştur ve std::cout << Player::count; ile sayıyı yazdır.

Başlangıç kodu

main.cpp
#include <iostream>

// Player sınıfını tanımla

int main() {
    // İki Player oluştur ve sayıyı yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>

class Player {
public:
    static int count;
    Player() { count++; }
};

int Player::count = 0;

int main() {
    Player p1;
    Player p2;
    std::cout << Player::count;
    return 0;
}

Beklenen çıktı

2

Soru ve cevaplar

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

1 static üye tanımı nereye yazılır?

main.cpp
class Player { static int count; };
  • Sınıf gövdesi içinde
  • Yapıcı metot içinde
  • main fonksiyonu içinde
  • Sınıf dışında Player::count biçiminde Doğru cevap

Açıklama: static üye sınıf dışında Player::count biçiminde tanımlanır.

2 Static üye bildirimini tamamla

Soru
class Player { public: static int ____; };
Cevap
class Player { public: static int count; };

Açıklama: Üye değişken küçük harfle başlar: count.

3 Bileşeni rolüne eşle

Kavram Anlamı
static int count; Bildirim
int Player::count = 0; Tanım
Player::count Erişim
count++ Artırma

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