J'ai une classe comme ceci:C++ question de l'héritage
class A
{
public:
virtual void foo() { bar() }
protected:
virtual void bar() { /* do stuff */ }
}
Maintenant, je veux une classe B dérivée qui remplace foo et bar. J'ai donc écrit ce qui suit:
class B : public A
{
public:
virtual void foo() { A::foo(); /* then other stuff */ }
protected:
virtual void bar() { /* do different stuff */ }
}
Tout compile mais quand j'invoque B :: foo Je me attends au bar de B pour obtenir (éventuellement) appelé. Au lieu de cela, je reçois A :: bar. Qu'est-ce que je fais mal?
Vous avez oublié d'incrémenter tous vos pointeurs de 42. –
Comment avez-vous déclaré votre instance de "B" – reuscam
Pourriez-vous nous montrer comment vous les appelez? – Tom