héritage privé:
Tous Public
membres de la classe de base deviennent Private
membres de la classe dérivée &
Tous Protected
membres de la classe de base deviennent Private
membres de la classe dérivée.
Un code Exemple:
Class Base
{
public:
int a;
protected:
int b;
private:
int c;
};
class Derived:private Base //Not mentioning private is OK because for classes it defaults to private
{
void doSomething()
{
a = 10; //Allowed
b = 20; //Allowed
c = 30; //Not Allowed, Compiler Error
}
};
class Derived2:public Derived
{
void doSomethingMore()
{
a = 10; //Not Allowed, Compiler Error, a is private member of Derived now
b = 20; //Not Allowed, Compiler Error, b is private member of Derived now
c = 30; //Not Allowed, Compiler Error
}
};
int main()
{
Derived obj;
obj.a = 10; //Not Allowed, Compiler Error
obj.b = 20; //Not Allowed, Compiler Error
obj.c = 30; //Not Allowed, Compiler Error
}
Si vous êtes enclin à savoir sur l'héritage & spécificateurs d'accès, vous pouvez consulter plus à this réponse que je posté tout à fait il y a quelque temps.