loic.actarus.joly@numeric Guest
|
Posted: Thu Jan 05, 2006 11:29 am Post subject: protected et pointeur sur fonction membre |
|
|
Bonjour à tous et bonne année,
Au boulot, on est tombé sur de code comme ça :
class A
{
protected:
int f();
};
class B : public A
{
typedef int(A::*fptr)();
fptr p;
int g()
{
//p = &A::f;
p = &B::f;
}
};
Si on enlève le commentaire, le code ne compile plus, ce qui semble en
accord avec la norme :
11.5 Protected member access
When a friend or a member function of a derived class references a
protected nonstatic member of a base class, an access check applies
in
addition to those described earlier in this clause.[...] If the
access is to form a pointer to member, the nested-name-specifier
shall
name the derived class (or any class derived from that class).
La question que l'on se pose est la motivation de cette règle.
Quelqu'un a une idée ?
Merci,
--
Loïc
|
|