C++ Access Specifiers

🔐 C++ Access Specifiers – public, private, and protected Explained Simply

Access specifiers in C++ decide who can touch what inside a class. Think of them as locks on the doors to your class members.

🏷️ The Three Main Access Levels

  • public – Anyone can access
  • private – Only the class itself can access
  • protected – The class and its children (inherited classes) can access

🔧 Example: public vs private

#include <iostream>
using namespace std;

class Car {
public:
    string brand;      // Anyone can access
private:
    int engineSecret;  // Only Car class can access

public:
    Car() {
        brand = "Toyota";
        engineSecret = 1234;
    }

    void showInfo() {
        cout << "Brand: " << brand << endl;
        cout << "Engine Secret: " << engineSecret << endl;
    }
};

int main() {
    Car myCar;
    myCar.brand = "Honda"; // OK
    // myCar.engineSecret = 9999; // ❌ Error: private member
    myCar.showInfo();

    return 0;
}
  

Try It Now

📦 protected in Inheritance

When using protected, the base class allows its child classes to access certain members—like giving family members a spare key. 🔑

🔍 Summary Table (Quick Look)

  • public: Access from anywhere
  • private: Access only from within the class
  • protected: Access from within the class and subclasses

🧠 Summary

  • Access specifiers protect your data
  • Use private to hide sensitive stuff
  • Use public for safe open access
  • Use protected with inheritance

With access specifiers, you’re now in control of what’s public and what’s private—like a coding bouncer! 🚪