#include <iostream>

class Base {
 public:
  virtual void F1() {
    std::cout << "Base::F1()" << std::endl;
  }
  virtual void F2() {
    std::cout << "Base::F2()" << std::endl;
  }
};

class Der1: public Base {
 public:
  virtual void F1() {
    std::cout << "Der1::F1()" << std::endl;
  }
};

int main(int argc, char** argv) {
  Base b;
  Der1 d1;
  Base* bptr = &d1;
  bptr->F1();
  d1.F1();
}