mardi 24 mai 2016

Is final used for optimization in C++?

class A {
public:
    virtual void f() = 0;
};

class B : public A {
public:
    void f() final override { };
};

int main() {
    B* b = new B();
    b->f();
}

In this case, is the compiler required to still do the v-table lookup for b->f();, or can it call B::f() directly because it was marked final?

Aucun commentaire:

Enregistrer un commentaire