Advertisement
Guest User

Untitled

a guest
Jan 24th, 2017
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. #include<iostream>
  2. using std::cout;
  3. using std::endl;
  4. class A{
  5. protected:
  6. virtual void h(){cout << " A::h ";}
  7. public:
  8. virtual void g() const{cout << " A::g ";}
  9. virtual void f(){cout << " A::f "; g(); h();}
  10. void m(){cout << " A::m "; g(); h();}
  11. virtual void k(){cout << " A::k "; h(); m();}
  12. virtual A* n(){cout << " A::n "; return this;}
  13. };
  14. class B: public A{
  15. protected:
  16. virtual void h(){cout << " B::h ";}
  17. public:
  18. virtual void g(){cout << " B::g ";}
  19. void m(){cout << " B::m "; g(); h();}
  20. void k(){cout << " B::k "; g(); h();}
  21. B* n(){cout << " B::n "; return this;}
  22. };
  23. class C : public B{
  24. protected:
  25. virtual void h ()const{cout << " C::h";}
  26. public:
  27. virtual void g(){cout << " C::g";}
  28. void m(){cout << " C::m"; g();k();}
  29. void k() const{cout << " C::k";h();}
  30. };
  31. int main() {
  32. A *p2 = new B; A *p3 = new C; B *p4 = new B; B *p5 = new C; const A *p6 = new C;
  33. p2->f(); cout<<endl;
  34. p2->m(); cout<<endl;
  35. p3->k(); cout<<endl;
  36. p3->f();cout<<endl;
  37. p4->m(); cout<<endl;
  38. p4->k();cout<<endl;
  39. p4->g();cout<<endl;
  40. p5->g();cout<<endl;
  41. //p6->k();cout<<endl;
  42. p6->g();cout<<endl;
  43. (p3->n())->m(); cout<<endl;
  44. (p3->n())->g();cout<<endl;
  45. (p3->n())->n()->g();cout<<endl;
  46. (p5->n())->g();cout<<endl;
  47. (p5->n())->m();cout<<endl;
  48. (dynamic_cast<B*>(p2))->m();cout<<endl;
  49. (static_cast<C*>(p3))->k();cout<<endl;
  50. (static_cast<B*>(p3))->n();cout<<endl;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement