//Builder pattern #include "building.h" int main() { Contractor * aGuy = new Contractor(); Contractor * anotherGuy = new Contractor(); aGuy->setBuilder(new HouseBuilder()); aGuy->construct(); Structure * myBuilding = aGuy->getStructure(); Structure * myStreet = aGuy->construct(new ConcreteRoadBuilder); aGuy->addStructureToStreet(myBuilding); Structure * myBuilding2 = aGuy->addStructureToStreet(new SkyscraperBuilder); myStreet->accept(new Renter("Joe")); myStreet->accept(new Renter("Fred")); myStreet->accept(new Renter("Mike")); myStreet->accept(new Renter("Bob")); myStreet->accept(new Renter("Harry")); myStreet->ListRenters(); return 0; }