Использование родительского метода при переопределении этого метода в дочернем классе в C++

Пусть имеется 2-е структуры A и B (B унаследованна от A). В A имеется метод f, который переопределяется в B. При переопределении f внутри B хотелось бы использовать метод f, каким он был до переопределения. Как это можно сделать?

Функция f из B в коде, приведенном ниже, должна возвращать x * 2 т.е. 4.

struct A {
    int x = 2;
    int f() {
        return x;
    }
};
struct B : public A {
    int f() {
        return *f до переопределения*() * 2;
    }
};

Ответы (1 шт):

Автор решения: timur

Для этого воспользуйтесь оператором :: (подробнее):

struct B : public A {
    int f() {
        return A::f() * 2;
    }
};
→ Ссылка