codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <iostream> class A { public: virtual void blah() { std::cout << "in a" << std::endl; } void dupa() { std::cout << "dupA" << std::endl; } }; class B : public A { public: void blah() { std::cout << "in b" << std::endl; } void dupa() { std::cout << "dupB" << std::endl; } }; class C : public B { public: void blah() { std::cout << "in c" << std::endl; } void dupa() { std::cout << "dupC" << std::endl; } }; int main() { A *a = new A; B *b = new B; C *c = new C; std::cout << "normal calls: " << std::endl; a->blah(); a->dupa(); b->blah(); b->dupa(); c->blah(); c->dupa(); std::cout << "b casted to a: " << std::endl; a = static_cast<A*>(b); a->blah(); a->dupa(); std::cout << "c casted to a: " << std::endl; a = static_cast<A*>(c); a->blah(); a->dupa(); std::cout << "c casted to b: " << std::endl; b = static_cast<B*>(c); b->blah(); b->dupa(); return 0; }
Private
[
?
]
Run code