diff options
author | Alex AUVOLAT <alex.auvolat@ens.fr> | 2013-12-05 22:21:11 +0100 |
---|---|---|
committer | Alex AUVOLAT <alex.auvolat@ens.fr> | 2013-12-05 22:21:11 +0100 |
commit | a60e8a8eabde116cc3da920b637bc4f6f5b8b17c (patch) | |
tree | bd62368e27aa21884de036df150c139469f0fde6 /tests/exec/redef2.cpp | |
parent | a01d09ca4730de4987d67e73a8ee895f77f57f9c (diff) | |
download | LPC-Projet-a60e8a8eabde116cc3da920b637bc4f6f5b8b17c.tar.gz LPC-Projet-a60e8a8eabde116cc3da920b637bc4f6f5b8b17c.zip |
Added tests.
Diffstat (limited to 'tests/exec/redef2.cpp')
-rw-r--r-- | tests/exec/redef2.cpp | 34 |
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"; +} |