#include<iostream>

using namespace std;

class S {
public:
// virtual void play() const
   void play() const
   {  cout << "S::play" << endl; }
};

class I : public S {
public:
// virtual void play() const
   void play() const
   {  cout << "I::play" << endl; }
};

class W : public I {
public:
   void play() const
   {  cout << "W::play" << endl; }
};

int main()
{
   W flute;
   flute.play();
/*
   W* wpflute = &flute;
   wpflute->play();
*/
/*
   S* spflute = &flute;
   spflute->play();
*/
/*
   I* ipflute = &flute;
   ipflute->play();
*/

   return 0;
}
