vendredi 23 septembre 2016

Invoke base class function as derived

is there any way to call base class method from virtual function as derived class, not as base one? Example code:

class A
{
public:
    virtual void a() = 0;
    void print() { std::cerr << typeid(decltype(*this)).name(); };
};

class B : public A
{
public:
    virtual void a() { print(); }
};

int main() 
{
    B b;
    b.a(); //prints 1A, I want it to print 1B, is it even possible?
}

Aucun commentaire:

Enregistrer un commentaire