⚡ Build the skills to land top-paying quant jobs. Offer ends in --d --h --m --s-- days -- hours -- minutes -- seconds.
⚡ Build the skills to land top-paying quant jobs. Offer ends in 19d 01h 47m 48s19 days 1 hours 47 minutes 48 seconds.
You are reviewing a colleague's game-engine code where maze elements are created dynamically. Identify the design pattern used below.
class MapSite {
public:
virtual MapSite* clone() const = 0;
virtual ~MapSite() = default;
};
class Room : public MapSite {
public:
Room* clone() const override { return new Room(*this); }
};
class Maze {
public:
virtual Maze* clone() const { return new Maze(*this); }
virtual ~Maze() = default;
};
class MazeFactory {
public:
MazeFactory(Maze* m, Room* r) : mazeProto(m), roomProto(r) {}
Maze* makeMaze() const { return mazeProto->clone(); }
Room* makeRoom() const { return roomProto->clone(); }
private:
Maze* mazeProto;
Room* roomProto;
};