CodeBlanks Logo Icon CodeBlanks

static metotlar

static metotları ve örnek olmadan çağırmayı öğrenirsin.

static metotlar

Bir static metot, örnek oluşturmadan sınıf adıyla çağrılabilen metottur. static int getCount() bildirimi metodu statik yapar.

Static metotların içinde this işaretçisi yoktur; bu yüzden yalnızca static üyelere erişebilirler. Örnek üyeye erişmek için bir nesne gerekir. Çağrı: Player::getCount(). Bu, bir Player örneği olmadan bile çalışır. Static metotlar yardımcı fonksiyonları ve sayaç erişimcilerini gruplandırmak için idealdir.

Static metodun sınırları

Static bir metodun içinde this işaretçisi bulunmadığı için doğrudan örnek üyelerine erişemez. id gibi örnek üyeye erişmek istersen derleme hatası alırsın.

Buna karşılık count gibi static üyelere erişebilirsin, çünkü onlar sınıfa aittir, örneğe değil. Bu kısıtlama, static metotların örneği olmayan yardımcılar olarak çalışmasını sağlar. Eğer bir örnek üyeye erişmen gerekirse, metodu static yapma; normal metot olarak bırak.

Uygulama Player sınıfına static getCount ekle

Player sınıfına static int count; üye ve yapıcı metotta count++ ekle. public: altına static int getCount() metodu ekle; gövdesi return count;. Sınıf dışında int Player::count = 0; tanımını yaz. main içinde iki Player oluştur ve std::cout << Player::getCount(); yaz.

Başlangıç kodu

main.cpp
#include <iostream>

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

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

Örnek çözüm

main.cpp
#include <iostream>

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

int Player::count = 0;

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

Beklenen çıktı

2

Soru ve cevaplar

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

1 Static metodun bildirimini tamamla

Soru
class Player { public: ____ int getCount() { return count; } };
Cevap
class Player { public: static int getCount() { return count; } };

Açıklama: static anahtar kelimesi metodu statik yapar.

2 static metot içinden hangisine erişilebilir?

main.cpp
class Player {
    int id;
    static int count;
    static int get() { }
};
  • count Doğru cevap
  • id
  • this->id
  • this->count

Açıklama: static metot içinden yalnız static üyelere erişilir.

3 Bileşeni rolüne eşle

Kavram Anlamı
static int get() Statik metot
Player::get() Çağrı
this Statik metotta yok
count Erişilebilir

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