Advertisement
K_Y_M_bl_C

Untitled

Mar 31st, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. class apple{
  2. public:
  3.     apple() { std::cout << "CA\n"; }
  4.     virtual ~apple() {std::cout << "DA\n";}
  5.     virtual void show() {std::cout << "apple\n";}
  6. };
  7.  
  8. class orangeapple: public apple {
  9. public:
  10.     virtual ~orangeapple() { std::cout << "DOA\n"; }
  11.     virtual void show(int count = 2) { std::cout << "2 orangeapples\n"; }
  12. };
  13.  
  14. class shop {
  15. public:
  16.     void show(apple& p) { std::cout << "shop - "; p.show(); }
  17.     void show(orangeapple& p) { std::cout << "tropic shop - "; p.show(); }
  18. };
  19.  
  20. int solve()
  21. {
  22.     shop* s = new shop();
  23.     orangeapple oa;
  24.     oa.show();
  25.     orangeapple* poa = &oa;
  26.     apple* a = dynamic_cast<apple*>(poa);
  27.     s->show(oa);
  28.     s->show(*poa);
  29.     s->show(*a);
  30.     delete s;
  31.     return 0;
  32. }
  33.  
  34.  
  35. /*
  36. Output:
  37. CA
  38. 2 orangeapples
  39. tropic shop - 2 orangeapples
  40. tropic shop - 2 orangeapples
  41. shop - apple
  42. DOA
  43. DA
  44. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement