Public, Private, Protected - Tryhardtocarry/2143-oop GitHub Wiki
📄 Page Title: private
# 🔒 private Access Modifier
The `private` access modifier restricts access to class members so they are **only accessible within the class itself**. It enforces strong encapsulation by hiding internal details.
---
## 🔍 Definition
- Only accessible from methods inside the same class.
- NOT accessible from outside or derived classes.
---
## 💡 Example in C++
```cpp
class Dog {
private:
int age;
public:
void setAge(int a) {
age = a;
}
int getAge() {
return age;
}
};
int main() {
Dog d;
d.setAge(5);
std::cout << d.getAge(); // Output: 5
// d.age = 5; ❌ 'age' is private
}
# 🛡️ protected Access Modifier
The `protected` access modifier allows class members to be accessed **within the same class** and by any **derived (child) classes**, but **not from outside** those classes.
---
## 🔍 Definition
- Accessible in the base class and its derived (inherited) classes.
- NOT accessible from outside the class hierarchy.
---
## 💡 Example in C++
```cpp
class Animal {
protected:
int legs;
};
class Dog : public Animal {
public:
void setLegs(int l) {
legs = l; // ✅ Allowed in derived class
}
int getLegs() {
return legs;
}
};
int main() {
Dog d;
d.setLegs(4);
std::cout << d.getLegs(); // Output: 4
// d.legs = 4; 'legs' is protected
}