summaryrefslogtreecommitdiff
path: root/tests/exec/redef1.cpp
blob: 4823765c81ca04e632d14a001a35914db82960e5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>

class A {
public:
  virtual int f(int x);
};

int A::f(int x) { return x; }

class B : public A {
public:
  virtual int f(int x);
};

int B::f(int x) { return 2*x; }

int main() {
  A *a = new A();
  std::cout << a->f(1) << "\n";
  B *b = new B();
  std::cout << b->f(1) << "\n";
  a = b;
  std::cout << a->f(1) << "\n"; // c'est B::f qui est appelée
}