How is base class access specification different from member access specification?
Asked
Active
Viewed 2,291 times
1 Answers
2
Base class access specification decides about base class' members access specification in your class. They provide a way to hide base class' members if you don't want them to appear publicly in your class. They doesn't affect visibility of members of your class though.
C++ FAQ explains this issue quite nicely.
class Base
{
protected:
int A;
public:
int B;
};
class Derived1 : public Base
{
// Derived1::A outside class is seen as protected
// Derived1::B outside class is seen as public
};
class Derived2 : protected Base
{
// Derived1::A outside class is seen as protected
// Derived1::B outside class is seen as protected
};
class Derived3 : private Base
{
// Derived1::A outside class is seen as private
// Derived1::B outside class is seen as private
};

Spook
- 25,318
- 18
- 90
- 167