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 :
Avec ce code, le compilateur m'insulte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } };
D'où ma question : Pourquoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Erreur E2247 protected.cpp 14: 'Mother::value' n'est pas accessible dans la fonction A::operator +=(const Mother &)
Partager