Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.46 KB | None | 0 0
  1.  
  2. struct  A { virtual ~A() = default; };
  3. struct  B : A { void fun1(){ std::cout << "B\n"; }};
  4. struct  C : A { void fun2(){ std::cout << "C\n"; }};
  5.  
  6.  
  7.  
  8. int main()
  9. {
  10.    srand(time(NULL));
  11.    A* ptr = nullptr;
  12.    if (rand() % 2){
  13.        ptr = new B;
  14.    } else {
  15.        ptr = new C;
  16.    }
  17.  
  18.  
  19.    B* b_ptr = dynamic_cast<B*>(ptr);
  20.    if(b_ptr){
  21.        b_ptr->fun1();
  22.    } else {
  23.        dynamic_cast<C*>(ptr)->fun2();
  24.    }
  25.  
  26.     delete ptr;
  27.  
  28.  
  29.    return 0;
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement