Fonctionnement du protected.
Bonjour,
Je ne comprends pas très bien pourquoi une classe fille ne peut pas accéder à un membre protégé de sa classe mère.
Un petit exemple serra certainement plus efficace qu'un long discourt :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
class Mother
{
protected :
Mother( long x ) : value( x ) {}
long value;
};
class A : public Mother
{
public :
A( long x ) : Mother( x ) {}
A & operator +=( const Mother & m ){
value += m.value;
return *this;
}
}; |
Avec ce code, le compilateur m'insulte :
Code:
1 2
|
Erreur E2247 protected.cpp 14: 'Mother::value' n'est pas accessible dans la fonction A::operator +=(const Mother &) |
D'où ma question : Pourquoi ?