Access specifiers define the accessibility or visibility of class members (variables and functions) in C++.
#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;
}
publicVar is accessible directly outside the class.privateVar and protectedVar cannot be accessed directly outside the class.setValues() and printValues().protected members are accessible in derived classes, unlike private members.
Help others discover Technorank Learning by sharing your honest experience.
Your support inspires us to keep building!