#include <iostream>
class Base {
private:
int pri_vate = 1;
protected:
int prote_cted = 2;
public:
int pub_lic = 3;
int getPrivate() {
return pri_vate;
}
};
class ProtectedDerived : private Base {
public:
int getProtectedt() {
return prote_cted;
}
int getPublic() {
return pub_lic;
}
/*
int getPrivate_PublicDerived() {
return pri_vate; // error: ‘int Base::pri_vate’ is private within this context
}*/
};
int main() {
ProtectedDerived o;
// std::cout << "Private = " << o.getPrivate() << "\n"; // error: ‘int Base::getPrivate()’ is inaccessible within this context
std::cout << "Protected = " << o.getProtectedt() << "\n";
// std::cout << "Public = " << o.pub_lic << "\n"; // error: ‘int Base::pub_lic’ is inaccessible within this context
std::cout << "Public = " << o.getPublic() << "\n";
return 0;
}
/*
run:
Protected = 2
Public = 3
*/