#include<iostream>usingnamespace std;// 1classGame{public:voidplay(){initialize();startPlay();endPlay();}private:virtualvoidinitialize()=0;virtualvoidstartPlay()=0;virtualvoidendPlay()=0;};// 2.1classCricket:public Game {voidinitialize(){
cout <<"Cricket Game Initialized! Start playing."<< endl;}voidstartPlay(){
cout <<"Cricket Game Started. Enjoy the game!"<< endl;}voidendPlay(){
cout <<"Cricket Game Finished!"<< endl;}};// 2.2classFootball:public Game {voidinitialize(){
cout <<"Football Game Initialized! Start playing."<< endl;}voidstartPlay(){
cout <<"Football Game Started. Enjoy the game!"<< endl;}voidendPlay(){
cout <<"Football Game Finished!"<< endl;}};intmain(){
Game* game =newCricket();
game ->play();
cout << endl;
game =newFootball();
game ->play();}