 #include
      
      
        "
      
      
        iostream.h
      
      
        "
      
        #include
      
      
        "
      
      
        iostream.h
      
      
        "
      
      
         
         class
      
      
        A
      
      
      
        
          {
        
      
      
        class
      
      
        A
      
      
      
        
          {
           public
        
        
          :
        
        
          public
        
        
          :
           int
        
        
          num;
        
        
          int
        
        
          num;
           A()
        
        
        
          
            {
          
          A()
        
        
        
          
            {
             num
          
          
            =
          
          
          
          
            1
          
          
            ;
            num
          
          
            =
          
          
          
          
            1
          
          
            ;
             }
            }
          
        
        
           virtual
        
        
        
        
          void
        
        
          Display()
        
        
        
          
            {
          
        
        
          virtual
        
        
        
        
          void
        
        
          Display()
        
        
        
          
            {
             cout
          
          
            <<
          
          
            "
          
          
            A
          
          
            "
          
          
            ;
            cout
          
          
            <<
          
          
            "
          
          
            A
          
          
            "
          
          
            ;
             }
            }
          
        
        
           void
        
        
          print()
        
        
        
          
            {
          
        
        
          void
        
        
          print()
        
        
        
          
            {
             cout
          
          
            <<
          
          
            num;
            cout
          
          
            <<
          
          
            num;
             }
            }
          
        
        
           static
        
        
        
        
          void
        
        
          show()
        
        
        
          
            {
          
        
        
          static
        
        
        
        
          void
        
        
          show()
        
        
        
          
            {
             Aa;
            Aa;
             a.Display();
            a.Display();
             a.print();
            a.print();
             }
            }
          
        
        
           }
        
      
      
        ;
          }
        
      
      
        ;
         
         class
      
      
        B:
      
      
        public
      
      
        A
      
      
      
        
          {
        
      
      
        class
      
      
        B:
      
      
        public
      
      
        A
      
      
      
        
          {
           public
        
        
          :
        
        
          public
        
        
          :
           
           int
        
        
          num;
        
        
          int
        
        
          num;
           B()
        
        
        
          
            {
          
          B()
        
        
        
          
            {
             num
          
          
            =
          
          
          
          
            2
          
          
            ;
            num
          
          
            =
          
          
          
          
            2
          
          
            ;
             }
            }
          
        
        
           void
        
        
          Display()
        
        
        
          
            {
          
        
        
          void
        
        
          Display()
        
        
        
          
            {
             cout
          
          
            <<
          
          
            "
          
          
            B
          
          
            "
          
          
            ;
            cout
          
          
            <<
          
          
            "
          
          
            B
          
          
            "
          
          
            ;
             }
            }
          
        
        
           void
        
        
          print()
        
        
        
          
            {
          
        
        
          void
        
        
          print()
        
        
        
          
            {
             cout
          
          
            <<
          
          
            num;
            cout
          
          
            <<
          
          
            num;
             }
            }
          
        
        
           virtual
        
        
        
        
          void
        
        
          show()
        
        
        
          
            {
          
        
        
          virtual
        
        
        
        
          void
        
        
          show()
        
        
        
          
            {
             Display();
            Display();
             print();
            print();
             }
            }
          
        
        
           }
        
      
      
        ;
          }
        
      
      
        ;
         
         class
      
      
        C:
      
      
        public
      
      
        B
      
      
      
        
          {
        
      
      
        class
      
      
        C:
      
      
        public
      
      
        B
      
      
      
        
          {
           public
        
        
          :
        
        
          public
        
        
          :
           int
        
        
          num;
        
        
          int
        
        
          num;
           C()
        
        
        
          
            {
          
          C()
        
        
        
          
            {
             num
          
          
            =
          
          
          
          
            3
          
          
            ;
            num
          
          
            =
          
          
          
          
            3
          
          
            ;
             }
            }
          
        
        
           void
        
        
          Display()
        
        
        
          
            {
          
        
        
          void
        
        
          Display()
        
        
        
          
            {
             cout
          
          
            <<
          
          
            "
          
          
            C
          
          
            "
          
          
            ;
            cout
          
          
            <<
          
          
            "
          
          
            C
          
          
            "
          
          
            ;
             }
            }
          
        
        
           virtual
        
        
        
        
          void
        
        
          print()
        
        
        
          
            {
          
        
        
          virtual
        
        
        
        
          void
        
        
          print()
        
        
        
          
            {
             cout
          
          
            <<
          
          
            num;
            cout
          
          
            <<
          
          
            num;
             }
            }
          
        
        
           void
        
        
          show()
        
        
        
          
            {
          
        
        
          void
        
        
          show()
        
        
        
          
            {
             Display();
            Display();
             A::print();
            A::print();
             }
            }
          
        
        
           }
        
      
      
        ;
          }
        
      
      
        ;
         
         void
      
      
        main()
      
      
        void
      
      
        main()
         {
        
      
      
      
        
          {
           B
        
        
          *
        
        
          b
        
        
          =
        
        
        
        
          new
        
        
          C;
          B
        
        
          *
        
        
          b
        
        
          =
        
        
        
        
          new
        
        
          C;
           cout
        
        
          <<
        
        
          "
        
        
          b->num=
        
        
          "
        
        
          <<
        
        
          b
        
        
          ->
        
        
          num
        
        
          <<
        
        
          endl;
          cout
        
        
          <<
        
        
          "
        
        
          b->num=
        
        
          "
        
        
          <<
        
        
          b
        
        
          ->
        
        
          num
        
        
          <<
        
        
          endl;
           }
          }
        
      
      
         
      
    
    继承之后
    
    类B中的num不会覆盖A中的num,继承之后B中A中的num不可见,除非A::num才可以
    
    类C中的num也不会覆盖B和A中的num,也是同样的道理
    
    当一个c对象地址转成B地址,可见的就是B类中num,所以打印出来的就是2
    
  


 
       A()
          A()
         
					 
					