rendered paste body#include <iostream>class Dice{ public: void setSides(int sides); int getSides(); int roll(); private: int sides;};void Dice::setSides(int sides){ this->sides = sides;}int Dice::getSides(){ return sides;}int Dice::roll(){ return (rand() % sides) + 1;}//---------------------------------------------------------------class DicePotContainer{ public: Dice *getDice(); DicePotContainer *getNext(); void setDice(Dice &d); void setNext(DicePotContainer &dpc); private: DicePotContainer *pNext; Dice *pDice;};Dice *DicePotContainer::getDice(){ return pDice;}DicePotContainer *DicePotContainer::getNext(){ return pNext;}void DicePotContainer::setDice(Dice &d){ pDice = &d;}void DicePotContainer::setNext( DicePotContainer &dpc){ pNext = &dpc;}//---------------------------------------------------------------class DicePot{ public: DicePot(); void add(Dice &d); int roll(); private: DicePotContainer *pStart; int dCount;};DicePot::DicePot(){ dCount = 0;}void DicePot::add(Dice &d){ DicePotContainer *dpc = new DicePotContainer(); dpc->setDice(d); if (dCount == 0) { pStart = dpc; } else { DicePotContainer *cur; cur = pStart; for(int i = 0; i < (dCount-1); i++) { cur = cur->getNext(); } cur->setNext(*dpc); } dCount++;}int DicePot::roll(){ int total = 0; DicePotContainer *cur; cur = pStart; for (int i = 0; i < dCount; i++) { total += cur->getDice()->roll(); cur = cur->getNext(); } return total;}//---------------------------------------------------------------int main(void){ Dice moo; srand(time(0)); moo.setSides(6); DicePot pot; pot.add(moo); pot.add(moo); for (int i = 0; i < 20; i++) std::cout << pot.roll() << std::endl;}