Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct A { virtual ~A() = default; };
- struct B : A { void fun1(){ std::cout << "B\n"; }};
- struct C : A { void fun2(){ std::cout << "C\n"; }};
- int main()
- {
- srand(time(NULL));
- A* ptr = nullptr;
- if (rand() % 2){
- ptr = new B;
- } else {
- ptr = new C;
- }
- B* b_ptr = dynamic_cast<B*>(ptr);
- if(b_ptr){
- b_ptr->fun1();
- } else {
- dynamic_cast<C*>(ptr)->fun2();
- }
- delete ptr;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement