#include <iostream.h>
 
class A 
{
  public:
    virtual void VirtualFunction() {cout << 1 << endl;}
    void NonVirtualFunction() {cout << 2 << endl;}    
};

class B : public A
{        
  public:
    virtual void VirtualFunction() {cout << 3 << endl;}
    void NonVirtualFunction() {cout << 4 << endl;} 
};                   

void main()
{
  B b;
  A *pa = &b;
  B *pb = &b;

  pa->VirtualFunction();
  pa->NonVirtualFunction();
  pb->VirtualFunction();
  pb->NonVirtualFunction();
}