Erişim belirleyiciler
- C++ kursu
- Orta seviye
- Ders 5/116
- 5 dk
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
#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
#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?
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
class Account { ____: int getBalance(); };
class Account { public: int getBalance(); };
Açıklama: altındaki üyeler dışarıdan erişilebilir.