1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>

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

void Foo::f() {
  std::cout << "Hello Foo::f!\n";
}

class Frob : public Foo {
 public:
  virtual void f() {
    Foo::f();
    std::cout << "Hello Frob::f!\n";
  }
};

int main(int argc, char* argv) {
  Foo* f = new Frob;
  f->f();
}