CodeBlanks Logo Icon CodeBlanks

Erişim belirleyiciler

public, private ve protected arasındaki farkı öğrenirsin.

Erişim belirleyiciler

C++'ta üç erişim belirleyici (access modifier) vardır: public, private ve protected. Bunlar sınıf üyelerinin dışarıdan erişilebilirliğini kontrol eder. Belirleyiciden sonra iki nokta konur: public:.

public üyelere her yerden erişilir. private üyelere yalnız sınıfın kendi üye fonksiyonlarından erişilir. protected, miras alan sınıfların da erişebilmesi dışında private gibidir. Bir belirleyici yazılana kadar üyeler varsayılan olarak private kabul edilir.

Kapsülleme için private

İç veriyi dış müdahaleden korumak için private kullanılır. Bu tekniğe kapsülleme (encapsulation) denir. Üye değişkenler private yapılır, dışarıya public üye fonksiyonlarla açılır.

Örnek: class Account { int balance; public: int getBalance() { return balance; } };. Burada balance dışarıdan doğrudan değiştirilemez; yalnız getBalance ile okunabilir. Böylece negatif bakiye gibi geçersiz durumlar engellenir.

Uygulama Account sınıfını erişim belirleyicilerle tanımla

Account sınıfını tanımla. Önce int balance; üye değişkeni (varsayılan private), sonra public: altına void setBalance(int b) { balance = b; } ve int getBalance() { return balance; } üye fonksiyonlarını ekle. main içinde bir örnek oluştur, setBalance(100) çağır ve std::cout ile getBalance()'in sonucunu yazdır.

Başlangıç kodu

main.cpp
#include <iostream>

// Account sınıfını tanımla

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

Örnek çözüm

main.cpp
#include <iostream>

class Account {
    int balance;
public:
    void setBalance(int b) {
        balance = b;
    }
    int getBalance() {
        return balance;
    }
};

int main() {
    Account acc;
    acc.setBalance(100);
    std::cout << acc.getBalance();
    return 0;
}

Beklenen çıktı

100

Soru ve cevaplar

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

1 Belirleyiciyi erişim düzeyine eşle

Kavram Anlamı
public Her yerden erişim
private Yalnız sınıf içinden
protected Miras alan sınıflar da erişir
class Light { }; Varsayılan private

2 Aşağıdakilerden hangisi doğrudur?

main.cpp
class Account { int balance; public: void deposit(int x); };
  • balance dışarıdan erişilebilir
  • deposit dışarıdan erişilebilir Doğru cevap
  • deposit private kabul edilir
  • balance public kabul edilir

Açıklama: deposit public: altında olduğu için dışarıdan erişilebilir.

3 Erişim belirleyiciyi yaz

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

Açıklama: altındaki üyeler dışarıdan erişilebilir.

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