Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.69 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. /*
  4. g++ virtualexample.cpp and use ./a.out to run.
  5. */
  6. class A{
  7.     public:
  8.  
  9.     virtual void p(){
  10.         std::cout << "A.p\n";
  11.     }
  12.     void q(){
  13.         std::cout << "A.q\n";
  14.     }
  15.  
  16.     virtual void r(){
  17.         p();
  18.         q();
  19.     }
  20. };
  21.  
  22. class B : public A{
  23.  
  24.     public:
  25.  
  26.     void p(){
  27.         std::cout << "B.p\n";
  28.     }
  29. };
  30.  
  31. class C : public B{
  32.     public:
  33.  
  34.     void q(){
  35.         std::cout << "C.q\n";
  36.     }
  37.  
  38.     void r(){
  39.         q();
  40.         p();
  41.     }
  42. };
  43.  
  44. int main(){
  45.     A a;
  46.     C c;
  47.     a = c;
  48.     a.r();
  49.     A* ap = new B;
  50.     ap->r();
  51.     ap = new C;
  52.     ap->r();
  53.  
  54.     return 0;
  55. }
  56.  
  57. Output:
  58. A.p
  59. A.q
  60. B.p
  61. A.q
  62. C.q
  63. B.p
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement