CPP Tutorial



C++ ACCESS SPECIFIERS


Access Specifiers in C++

Access specifiers define the accessibility or visibility of class members (variables and functions) in C++.

🔑 Types of Access Specifiers:

  • public: Members are accessible from anywhere.
  • private: Members are accessible only within the class.
  • protected: Members are accessible within the class and its derived (child) classes.

📄 Example: Access Specifiers

#include <iostream>
using namespace std;

class MyClass {
  public:
    int publicVar;

  private:
    int privateVar;

  protected:
    int protectedVar;

  public:
    void setValues(int pub, int priv, int prot) {
      publicVar = pub;
      privateVar = priv;
      protectedVar = prot;
    }

    void printValues() {
      cout << "Public: " << publicVar << endl;
      cout << "Private: " << privateVar << endl;
      cout << "Protected: " << protectedVar << endl;
    }
};

int main() {
  MyClass obj;
  obj.publicVar = 10;         // Allowed
  // obj.privateVar = 20;     // Error: privateVar is private
  // obj.protectedVar = 30;   // Error: protectedVar is protected

  obj.setValues(10, 20, 30);  // Allowed
  obj.printValues();

  return 0;
}
  

🖨️ Output:

Public: 10
Private: 20
Protected: 30

🔍 Explanation:

  • publicVar is accessible directly outside the class.
  • privateVar and protectedVar cannot be accessed directly outside the class.
  • But they can be accessed inside public member functions like setValues() and printValues().

🧑‍💻 Note on Inheritance:

protected members are accessible in derived classes, unlike private members.

🎓 Summary

  • public: Accessible everywhere.
  • private: Accessible only within the class.
  • protected: Accessible within the class and subclasses.

🌟 Enjoyed Learning with Us?

Help others discover Technorank Learning by sharing your honest experience.
Your support inspires us to keep building!

Leave a Google Review