#include <iostream>
using namespace std;

// Build the product desktop

class Desktop
{
  public:
  string monitor;
  string keyboard;
  string cpu;
  string mouse;

  
  void display()
  {
      cout<<"Monitor is : "<<monitor<<endl;
      cout<<"Keyboard is : "<<keyboard<<endl;
      cout<<"CPU is : "<<cpu<<endl;
      cout<<"Mouse is : "<<mouse<<endl;
  }

};


class DesktopBuilder
{
  protected:
    Desktop pDesktop;
   public: 
    virtual void buildmonitor() = 0 ;
    virtual void buildkeyboard() = 0;
    virtual void buildcpu() = 0;
    virtual void buildmouse() = 0; 
    Desktop getdesktop()
    {
       return pDesktop;
    }
     
};

class DellDesktopBuilder : public DesktopBuilder
{

   public:
   void buildmonitor()
   {
    pDesktop.monitor = "Dell Monitor";
   }
   
   void buildkeyboard()
   {
    pDesktop.keyboard = "Dell keyboard ";
   }
   void buildcpu()
   {
    pDesktop.cpu=  "Dell CPU";
   }
   void buildmouse()
   {
    pDesktop.mouse = "Dell Mouse";
   }

};

class HpDesktopBuilder : public DesktopBuilder
{

   public:
   void buildmonitor()
   {
    pDesktop.monitor = "Hp Monitor";
   }
   
   void buildkeyboard()
   {
    pDesktop.keyboard = "Hp keyboard ";
   }
   void buildcpu()
   {
    pDesktop.cpu=  "Hp CPU";
   }
   void buildmouse()
   {
    pDesktop.mouse = "Hp Mouse";
   }

};


class Director
{
     public:
     Desktop getbuilder(DesktopBuilder &pdeskbuild)
     {
         pdeskbuild.buildmonitor();
         pdeskbuild.buildkeyboard();
         pdeskbuild.buildcpu();
         pdeskbuild.buildmouse();
         return pdeskbuild.getdesktop();
         
     }
};



int main() {

   Director director;

   HpDesktopBuilder hpbuilder;
   Desktop hp = director.getbuilder(hpbuilder);

   DellDesktopBuilder dellbuilder ;
   Desktop dell = director.getbuilder(dellbuilder);

   hp.display();
   dell.display();
    
    
    return 0;
}

Embed on website

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