Un test de C++, plutôt moyen au demeurant, m'a permis de découvrir une syntaxe pour appeler la fonction de base sur un type dérivé:
#include
class Base
{
public:
virtual ~Base() {}
virtual void f() { std::cout << "Base" << std::endl; }
};
class Derived : public Base
{
public:
virtual void f() { std::cout << "Derived" << std::endl; }
};
int main()
{
Derived d;
d.Base::f();
}
Au final, cette syntaxe est plutôt logique: depuis une méthode dérivée, on peut en effet appeler une méthode de base avec Base::f(), c'est à dire this->Base::f(). Donc, pourquoi pas sur un autre objet que this?
Aucun commentaire:
Enregistrer un commentaire