#include<iostream>

using namespace std;

class I {
   int i;
public:
   I() : i(10) {}

//   virtual void play()
 void play()
   {  cout << "I::play" << endl;
      cout << i++ << endl; }
};

class W : public I {
   int i;
public:
   W() : i(20) {}

   void play()
   {  cout << "W::play" << endl;
      cout << i++ << endl; }
};

int main()
{
   I instr;
   instr.play();

   W flute;
   flute.play();

   I* pflute = &instr;
   pflute->play();

   pflute = &flute;
   pflute->play();

   return 0;
}
