C++
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.
Örnek çözümü göster
#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;
}
Kendini test et
-
Belirleyiciyi erişim düzeyine eşle
- 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
-
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
- deposit private kabul edilir
- balance public kabul edilir
Cevabı göster
deposit dışarıdan erişilebilir — deposit public: altında olduğu için dışarıdan erişilebilir.
-
Erişim belirleyiciyi yaz
class Account { ____: int getBalance(); };
Cevabı göster
class Account { public: int getBalance(); };
Sıradaki ders: Özet - Sınıflar