diff options
Diffstat (limited to 'libs/python/pyste/tests/virtual2.h')
-rw-r--r-- | libs/python/pyste/tests/virtual2.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/libs/python/pyste/tests/virtual2.h b/libs/python/pyste/tests/virtual2.h new file mode 100644 index 000000000..a6677ad16 --- /dev/null +++ b/libs/python/pyste/tests/virtual2.h @@ -0,0 +1,34 @@ +/* Copyright Bruno da Silva de Oliveira 2003. Use, modification and + distribution is subject to the Boost Software License, Version 1.0. + (See accompanying file LICENSE_1_0.txt or copy at + http://www.boost.org/LICENSE_1_0.txt) + */ + +namespace virtual2 { + +struct A +{ + virtual int f() { return 0; } + virtual int f1() { return 10; } + virtual A* make_new() { return new A; } +}; + +struct B: A +{ + virtual int f() { return 1; } + virtual int f2() { return 20; } + virtual A* make_new() { return new B; } +}; + +inline int call_fs(A*a) +{ + int r = a->f1(); + B* b = dynamic_cast<B*>(a); + return r + b->f2(); +} + +inline int call_f(A* a) +{ + return a->f(); +} +} |