#include <iostream>
using namespace std;

class Payementstrategy
{
   public:
   virtual void execute(int amount) = 0;
   virtual ~Payementstrategy()
   {
    
   }
};

class upi :public Payementstrategy
{
   public:
    void execute(int amount)
    {
      cout<<"upi payement method executed "<<amount<<endl;
    }

};

class paytm :public Payementstrategy
{
   public:
    void execute(int amount)
    {
      cout<<"paytm payement method executed "<<amount<<endl;
    }


};

class creditcard :public Payementstrategy
{
   public:
    void execute(int amount)
    {
      cout<<"creditcard payement method executed "<<amount<<endl;
    }

};



class Payementprocessor{

   private:
   Payementstrategy *payemnt;
 
   public:
   Payementprocessor() : payemnt(nullptr){}

   void setpayement(Payementstrategy *paymnt)
   {
       payemnt = paymnt;
   }

   void processpayement(int amt)
   {
        if(payemnt)
        {
            payemnt->execute(amt);
        }
        else
        {
            cout<<"payement not process";
        }
   }
};


int main() {
    
    Payementstrategy *p = new upi();

    Payementprocessor pp;
    pp.setpayement(p);
    pp.processpayement(100);

    delete p;

    p = new creditcard();
    pp.setpayement(p);
    pp.processpayement(100);

    delete p;
    
    return 0;
    
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: