#include class Base { public: virtual void foo() { std::cout << "base" << std::endl; } }; class Derived : public Base { public: void foo() override { std::cout << "derived" << std::endl; Base::foo(); } }; int main(int argc, char** argv) { Derived d; Base* b = &d; b->foo(); return 0; }