#include <iostream>
class Base {
public:
virtual void foo() { std::cout << "Base\n"; }
};
class Derived : public Base {
public:
void foo() { std::cout << "Derived\n"; }
};
void function1(Derived *p) {
p->Base::foo(); // <<<<< Here is the magic >>>>>
}
int main() {
Derived d;
function1(&d);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgQmFzZSB7CnB1YmxpYzoKICAgIHZpcnR1YWwgdm9pZCBmb28oKSB7IHN0ZDo6Y291dCA8PCAiQmFzZVxuIjsgfQp9OwoKY2xhc3MgRGVyaXZlZCA6IHB1YmxpYyBCYXNlIHsKICAgIHB1YmxpYzoKICAgIHZvaWQgZm9vKCkgeyBzdGQ6OmNvdXQgPDwgIkRlcml2ZWRcbiI7IH0KfTsKCnZvaWQgZnVuY3Rpb24xKERlcml2ZWQgKnApIHsKICAgcC0+QmFzZTo6Zm9vKCk7ICAvLyA8PDw8PCBIZXJlIGlzIHRoZSBtYWdpYyA+Pj4+Pgp9CgppbnQgbWFpbigpIHsKICAgIERlcml2ZWQgZDsKICAgIGZ1bmN0aW9uMSgmZCk7Cn0=