C++'da Genel ve Özel Erişim Belirleyicileri
Table of Contents
- Giriş
- C++'da Erişim Belirleyicileri
- Genel Erişim Belirleyici
- Genel Erişim Belirleyicinin Kullanımı
- Sınıf Dışında Genel Üye Değişkenine Erişim
- Sınıf İçinde Genel Üye Değişkenine Erişim
- Sınıf Dışında Genel Üye Fonksiyonuna Erişim
- Sınıf İçinde Genel Üye Fonksiyonuna Erişim
- Özel Erişim Belirleyici
- Özel Erişim Belirleyicinin Kullanımı
- Sınıf Dışında Özel Üye Değişkenine Erişim
- Sınıf İçinde Özel Üye Değişkenine Erişim
- Sınıf Dışında Özel Üye Fonksiyonuna Erişim
- Sınıf İçinde Özel Üye Fonksiyonuna Erişim
- Getter ve Setter Fonksiyonları
- Erişim Belirleyicilerle Getter ve Setter Fonksiyonlarının Kullanımı
- Neden Getter ve Setter Fonksiyonları Kullanırız?
- Bonus Hesaplama Örneği
- Özel Üye Fonksiyonunun Kullanımı
- Genel Üye Fonksiyon İle Özel Üye Fonksiyonun İşbirliği
- Özet
- Sıkça Sorulan Sorular (FAQ)
Giriş
Bu makalede, C++ programlama dilindeki genel ve özel erişim belirleyicileri arasındaki farkı ele alacağız. Erişim belirleyiciler, bir sınıfın üye değişkenlerinin ve fonksiyonlarının nasıl kullanılabileceğini değiştirir. Bu makalede, genel erişim belirleyicinin nasıl kullanıldığını ve sınıf dışından ve içinden üye değişkenlere ve fonksiyonlara nasıl erişim sağlandığını göreceğiz. Ayrıca, özel erişim belirleyicinin kullanımını ve sınıf dışından ve içinden özel üye değişkenlere ve fonksiyonlara nasıl erişim sağlanamayacağını da öğreneceğiz.
C++'da Erişim Belirleyicileri
C++ programlama dilinde, erişim belirleyiciler sınıf üyelerinin erişilebilirlik seviyelerini belirlemek için kullanılır. C++'da dört farklı erişim belirleyici vardır: genel (public), özel (private), miras yönlendiricisi (protected) ve arkadaş (friend). Bu makalede, genel ve özel erişim belirleyicilerine odaklanacağız.
Genel Erişim Belirleyici
Genel erişim belirleyici (public), sınıfın üye değişkenlerinin ve fonksiyonlarının herhangi bir yerden erişilebilir olduğunu belirtir.
Genel Erişim Belirleyicinin Kullanımı
Genel erişim belirleyiciyi kullanmak için üye değişken veya fonksiyon tanımının veya deklarasyonunun başına public:
ifadesi eklenir. Örneğin:
class Employee {
public:
std::string name;
void printName() {
std::cout << "Name: " << name << std::endl;
}
};
Bu örnekte, name
üye değişkeni public
erişim belirleyici ile tanımlanmıştır. Bu nedenle, sınıf dışında veya sınıf içinde herhangi bir yerden name
değişkenine erişilebilir.
Sınıf Dışında Genel Üye Değişkenine Erişim
Genel erişim belirleyicisi ile tanımlanan bir üye değişkene, sınıf dışında erişmek için sınıfın bir örneği oluşturulmalıdır. Örneğin:
Employee employee1;
employee1.name = "Kevin";
Bu örnekte, employee1
adlı bir Employee
sınıfı örneği oluşturulmuştur. Daha sonra, employee1.name
ifadesiyle name
üye değişkenine erişilmiş ve değeri "Kevin"
olarak ayarlanmıştır.
Sınıf İçinde Genel Üye Değişkenine Erişim
Genel erişim belirleyici ile tanımlanan bir üye değişkene, sınıf içinde doğrudan erişilebilir. Örneğin:
void Employee::printName() {
std::cout << "Name: " << name << std::endl;
}
printName
üye fonksiyonu içinde, name
üye değişkenine doğrudan erişim sağlanmıştır.
Sınıf Dışında Genel Üye Fonksiyonuna Erişim
Genel erişim belirleyici ile tanımlanan bir üye fonksiyona, sınıf dışından erişmek için sınıfın bir örneği oluşturulmalı ve ardından fonksiyon çağrılmalıdır. Örneğin:
Employee employee1;
employee1.printName();
Bu örnekte, employee1
adlı bir Employee
sınıfı örneği oluşturulmuştur. Daha sonra, employee1.printName()
ifadesiyle printName
üye fonksiyonu çağrılmış ve "Name: Kevin"
çıktısı elde edilmiştir.
Özel Erişim Belirleyici
Özel erişim belirleyici (private), sınıfın üye değişkenlerinin ve fonksiyonlarının sadece sınıf içerisinden erişilebilir olduğunu belirtir.
Özel Erişim Belirleyicinin Kullanımı
Özel erişim belirleyiciyi kullanmak için üye değişken veya fonksiyon tanımının veya deklarasyonunun başına private:
ifadesi eklenir. Örneğin:
class Employee {
private:
double salary;
public:
std::string name;
void setSalary(double potentialSalary) {
if (potentialSalary < 0) {
salary = 0;
} else {
salary = potentialSalary;
}
}
double getSalary() {
return salary;
}
};
Bu örnekte, salary
üye değişkeni private
erişim belirleyici ile tanımlanmıştır. Bu nedenle, sınıf dışında salary
değişkenine doğrudan erişmek mümkün değildir.
Sınıf Dışında Özel Üye Değişkenine Erişim
Özel erişim belirleyici ile tanımlanan bir üye değişkene, sınıf dışında doğrudan erişim sağlanamaz. Örneğin:
Employee employee1;
employee1.salary = 50000; // Hata!
Bu örnekte, employee1
adlı bir Employee
sınıfı örneği oluşturulmuştur. Daha sonra, employee1.salary
ifadesiyle salary
üye değişkenine erişilmeye çalışılmış ancak derleme hatası alınmıştır. Derleyici bu hatayı, salary
üye değişkeninin private
bir üye olduğunu belirterek verir.
Sınıf İçinde Özel Üye Değişkenine Erişim
Özel erişim belirleyici ile tanımlanan bir üye değişkene, sınıf içinde doğrudan erişmek mümkündür. Örneğin:
void Employee::setSalary(double potentialSalary) {
if (potentialSalary < 0) {
salary = 0;
} else {
salary = potentialSalary;
}
}
setSalary
üye fonksiyonu içinde, salary
üye değişkenine doğrudan erişim sağlanmıştır.
Sınıf Dışında Özel Üye Fonksiyonuna Erişim
Özel erişim belirleyici ile tanımlanan bir üye fonksiyona, sınıf dışından erişmek mümkün değildir. Örneğin:
Employee employee1;
double salary = employee1.getSalary(); // Hata!
Bu örnekte, employee1
adlı bir Employee
sınıfı örneği oluşturulmuştur. Daha sonra, employee1.getSalary()
ifadesiyle getSalary
üye fonksiyonuna erişilmeye çalışılmış ancak derleme hatası alınmıştır. Derleyici bu hatayı, getSalary
üye fonksiyonunun private
bir üye olduğunu belirterek verir.
Özet
Bu makalede C++'daki genel ve özel erişim belirleyicilerin kullanımını öğrendik. Genel erişim belirleyicisi, bir sınıfın üye değişkenlerinin ve fonksiyonlarının herhangi bir yerden erişilebilir olduğunu belirtirken, özel erişim belirleyicisi sınıfın üye değişkenlerinin ve fonksiyonlarının sadece sınıf içerisinden erişilebilir olduğunu belirtir. Getter ve setter fonksiyonlarıyla da erişim belirleyicileri kullanarak üye değişkenlere erişim kontrolü sağlanabilir. Bu sayede, sınıfın iç yapısı korunarak kontrol edilebilir bir şekilde üye değişkenlere erişim sağlanabilir.
Sıkça Sorulan Sorular (FAQ)
S1. Genel erişim belirleyicinin avantajları nelerdir?
Genel erişim belirleyicisi, sınıfın üye değişkenlerinin ve fonksiyonlarının herhangi bir yerden erişilebilir olmasını sağlar. Bu sayede, bu üyelere dışarıdan kolayca erişim sağlanabilir ve kullanıcı dostu bir arayüz oluşturulabilir.
S2. Özel erişim belirleyici neden kullanılır?
Özel erişim belirleyici, sınıfın üye değişkenlerinin ve fonksiyonlarının sadece sınıf içerisinden erişilebilir olmasını sağlar. Bu sayede, sınıfın iç yapısı korunmuş olur ve dışarıdan yanlışlıkla yapılan erişimler engellenir.
S3. Bir üye değişken için hem getter hem de setter fonksiyonu kullanmak zorunda mıyım?
Getter ve setter fonksiyonları, özel erişim belirleyicisiyle tanımlanan üye değişkenlere erişim kontrolü sağlamak için kullanılır. Eğer bir üye değişkenin değerini okuma ve değiştirme ihtiyacınız varsa, hem getter hem de setter fonksiyonlarını kullanmanız önerilir. Bu sayede, erişim kontrolü sağlanmış olur ve üye değişkenin değeri güvenli bir şekilde okunup değiştirilebilir.
Kaynaklar: