summaryrefslogtreecommitdiff
path: root/tests/exec/redef2.cpp
diff options
context:
space:
mode:
authorAlex AUVOLAT <alex.auvolat@ens.fr>2013-12-05 22:21:11 +0100
committerAlex AUVOLAT <alex.auvolat@ens.fr>2013-12-05 22:21:11 +0100
commita60e8a8eabde116cc3da920b637bc4f6f5b8b17c (patch)
treebd62368e27aa21884de036df150c139469f0fde6 /tests/exec/redef2.cpp
parenta01d09ca4730de4987d67e73a8ee895f77f57f9c (diff)
downloadLPC-Projet-a60e8a8eabde116cc3da920b637bc4f6f5b8b17c.tar.gz
LPC-Projet-a60e8a8eabde116cc3da920b637bc4f6f5b8b17c.zip
Added tests.
Diffstat (limited to 'tests/exec/redef2.cpp')
-rw-r--r--tests/exec/redef2.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/exec/redef2.cpp b/tests/exec/redef2.cpp
new file mode 100644
index 0000000..49b06e2
--- /dev/null
+++ b/tests/exec/redef2.cpp
@@ -0,0 +1,34 @@
+#include <iostream>
+
+class A {
+public:
+ virtual int f(int x);
+};
+
+int A::f(int x) { return x; }
+
+class B : public A {
+public:
+};
+
+class C : public B {
+public:
+ virtual int f(int x);
+};
+
+int C::f(int x) { return 3*x; }
+
+int main() {
+ A *a = new A();
+ std::cout << a->f(1) << "\n";
+ B *b = new B();
+ std::cout << b->f(1) << "\n";
+ C *c = new C();
+ std::cout << c->f(1) << "\n";
+ a = b;
+ std::cout << a->f(1) << "\n";
+ a = c;
+ std::cout << a->f(1) << "\n";
+ b = c;
+ std::cout << b->f(1) << "\n";
+}