summaryrefslogtreecommitdiff
path: root/tests/exec/redef1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/exec/redef1.cpp')
-rw-r--r--tests/exec/redef1.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/exec/redef1.cpp b/tests/exec/redef1.cpp
new file mode 100644
index 0000000..4823765
--- /dev/null
+++ b/tests/exec/redef1.cpp
@@ -0,0 +1,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
+}