What is the difference between
public,private, andprotectedinheritance in C++?
To answer that question, I'd like to describe member's accessors first in my own words. If you already know this, skip to the heading "next:".
There are three accessors that I'm aware of: public, protected and private.
Let:
class Base {
public:
int publicMember;
protected:
int protectedMember;
private:
int privateMember;
};
Base is also aware that Base contains publicMember.Base contains protectedMember.Base is aware of privateMember.By "is aware of", I mean "acknowledge the existence of, and thus be able to access".
The same happens with public, private and protected inheritance. Let's consider a class Base and a class Child that inherits from Base.
public, everything that is aware of Base and Child is also aware that Child inherits from Base.protected, only Child, and its children, are aware that they inherit from Base.private, no one other than Child is aware of the inheritance.