C++ Erişim Belirleyicileri (Access Specifiers)

  • 1
  • (1)
  • (5)
  • 18 Oca 2025

C++'ta sınıflar, veri öğelerinin ve fonksiyonların erişim düzeylerini belirlemek için erişim belirleyicileri (access specifiers) kullanır. Erişim belirleyicileri, veri kapsülleme (encapsulation) ilkesinin temel bir parçasıdır ve sınıf öğelerinin hangi alanlardan erişilebileceğini denetler. C++'ta 3 temel erişim belirleyicisi vardır:

  • public (Genel)
  • private (Özel)
  • protected (Korumalı)

Public (Genel) Erişim Belirleyici

public erişim belirleyicisi ile tanımlanan öğeler, sınıf dışından ve sınıfın türetildiği alt sınıflarından erişilebilir.

Genellikle sınıf dışından erişilebilir olması gereken fonksiyonlar veya sabitler için kullanılır.

#include <iostream>
#include <locale.h>
using namespace std;

class Kitap {
public:
    string baslik;
    void setBaslik(string b) {
        baslik = b;
    }
    void goster() {
        cout << "Kitap: " << baslik << endl;
    }
};

int main() {
    setlocale(LC_ALL, "Turkish");
    Kitap k;
    k.setBaslik("C++ Programlama");
    k.goster();
    return 0;
}

Private (Özel) Erişim Belirleyici

private ile tanımlanan öğeler yalnızca sınıfın içinde erişilebilir.

Sınıf dışından veya türetilmiş alt sınıflardan erişim engellenir.

Veriyi koruma ve yalnızca yetkili fonksiyonlar aracılığıyla erişim sağlama amacıyla kullanılır.

#include <iostream>
#include <locale.h>
using namespace std;

class Ogrenci {
private:
    int yas;

public:
    void setYas(int y) {
        yas = y;
    }
    int getYas() {
        return yas;
    }
};

int main() {
    setlocale(LC_ALL, "Turkish");
    Ogrenci o;
    o.setYas(20);
    cout << "Yaş: " << o.getYas() << endl;
    return 0;
}

Protected (Korumalı) Erişim Belirleyici

protected ile tanımlanan öğeler, yalnızca sınıf içinde ve türetilmiş sınıflarda erişilebilir.

Sınıf dışından erişim engellenir ancak alt sınıflar bu öğeleri miras alabilir.


#include <iostream>
#include <locale.h>
using namespace std;

class Calisan {
// Eğer bu değeri private olarak tanımlarsanız Mudur sınıfından erişim kısıtlanır
protected:
    string pozisyon;

public:
    void setPozisyon(string p) {
        pozisyon = p;
    }
};

class Mudur : public Calisan {
public:
    void goster() {
        cout << "Pozisyon: " << pozisyon << endl;
    }
};

int main() {
    setlocale(LC_ALL, "Turkish");
    Mudur m;
    m.setPozisyon("Yazılım Mühendisi");
    m.goster();
    return 0;
}
Belirleyici Erişim Sınıf İçinden Alt Sınıftan Sınıf Dışından
public Genel Evet Evet Evet
protected Korumalı Evet Evet Hayır
private Özel Evet Hayır Hayır

C++'ta erişim belirleyicileri, verilerin koruma seviyesini ve erişim yetkilerini tanımlamak için kritik bir rol oynar. Doğru erişim belirleyicisi kullanılarak sınıfların kapsülleme prensibine uygun bir şekilde tasarlanması sağlanabilir. Program geliştirirken hangi öğenin kimler tarafından erişileceğini belirlemek için erişim belirleyicilerini bilinçli bir şekilde kullanmak gereklidir.

Örnekler Visual Studio 2022 ortamında C++ konsol uygulaması üzerinde denenmiştir.

İlişkili İçerikler

Bu makale içerisinde Visual Studio 2022 üzerinde C++ konsol uygulaması oluşturup, üzerinde değişik örnekler denenmektedir. İnceleyip uygulayabilirsiniz.

Nesne Yönelimli Programlama (OOP), yazılım geliştirme sürecinde yeniden kullanılabilir ve bakımı kolay kod yazmak için kullanılan bir yaklaşımdır. C++ dili, OOP destekleyen en popüler dillerden biridir.

Paylaşın
Etiket Bulutu