CodeBlanks Logo Icon CodeBlanks

private üyeler

private üyelerle bilgi gizlemeyi öğrenirsin.

private üyeler

Kapsülleme (encapsulation), nesnenin iç verisini dışarıdan gizlemektir. C++'ta bunu private erişim belirleyici ile yaparsın. Bir private üyeye yalnızca sınıfın kendi üye fonksiyonlarından erişilebilir; sınıf dışından doğrudan okunamaz veya değiştirilemez.

Örnek: class Account { private: int balance; };. Burada balance private'dır. Account a; a.balance = 100; yazarsan derleme hatası alırsın; çünkü balance'a sınıf dışından erişemezsin. Bu, balance'ın negatif gibi geçersiz değerler almasını engeller. Veriyi yalnızca kontrollü yollarla açmak, hataları erken yakalar.

Veriyi koruma

private yapmak, veriyi gizlemekle kalmaz; geçersiz değerleri engellemenin de temelidir. Üye değişkeni private yapıp, onu değiştiren public bir metot yazarsan, o metot içinde kontrol yapabilirsin.

Örnek: void setAge(int a) { if (a >= 0) age = a; }. Burada age private'dır. setAge(-5) çağrısı negatif yaşa izin vermez; age değişmez. Eğer age public olsaydı, w.age = -5; yazarak geçersiz değer atabilirdin ve kimse buna engel olamazdı. Kapsülleme, sınıfın değişmezlerini (invariants) korur.

Uygulama Wallet sınıfına private üye ekle

Wallet sınıfını tanımla. private: altına int money; üye değişkeni ekle. public: altına void setMoney(int m) { if (m >= 0) money = m; } ve int getMoney() { return money; } üye fonksiyonlarını ekle. main içinde bir örnek oluştur, setMoney(50) çağır ve std::cout ile getMoney()'yi yazdır.

Başlangıç kodu

main.cpp
#include <iostream>

// Wallet sınıfını tanımla

int main() {
    // Wallet örneği oluştur, setMoney çağır ve getMoney yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>

class Wallet {
private:
    int money;
public:
    void setMoney(int m) {
        if (m >= 0) money = m;
    }
    int getMoney() {
        return money;
    }
};

int main() {
    Wallet w;
    w.setMoney(50);
    std::cout << w.getMoney();
    return 0;
}

Beklenen çıktı

50

Soru ve cevaplar

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

1 class Wallet { private: int money; }; tanımında money'ye dışarıdan erişilebilir mi?

main.cpp
class Wallet { private: int money; };
  • Evet, her yerden
  • Hayır, yalnız sınıf içinden Doğru cevap
  • Yalnız main içinden
  • Yalnız friend sınıflardan

Açıklama: private üyeye yalnız sınıfın kendi metotlarından erişilir.

2 Erişim belirleyiciyi yaz

Soru
class Account { ____: int balance; public: int getBalance(); };
Cevap
class Account { private: int balance; public: int getBalance(); };

Açıklama: balance private yapılır, getBalance public açılır.

3 Belirleyiciyi erişime eşle

Kavram Anlamı
private Yalnız sınıf içinden
public Her yerden
protected Miras alanlar da erişir
int balance; private varsayılan

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