Je vois deux problèmes dans une configuration comme ceci:classe dérivée ne peut pas voir la classe parent correctement
namespace ns1
{
class ParentClass
{
protected:
void callback();
};
}
namespace ns1
{
namespace ns2
{
class ChildClass : public ParentClass
{
public:
void method()
{
registerCallback(&ParentClass::callback);
}
};
}
}
- ChildClass :: méthode() donne une erreur de compilation: "« NS1 :: ParentClass :: callback ': ne peut pas accéder au membre protégé déclaré dans la classe' ns1 :: ParentClass ' "
ParentClass *pObj = new ChildClass()
donne une erreur, qu'il ne peut pas effectuer la conversion sans cast. C++ peut couler heureusement, non?
Pouvez-vous publier le contexte complet dans lequel '2.' donne une erreur? –
ParentClass * pObj = new ChildClass() compile bien en utilisant votre exemple (en commentant l'appel registerCallback illégal) dans VC10B2. Vous devrez poster plus de détails sur votre erreur. –
Pourquoi registerCallback est-il illégal? –