static üye değişken
- C++ kursu
- Orta seviye
- Ders 30/116
- 5 dk
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
#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
#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?
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
class Player { public: static int ____; };
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 |