#pragma once #include #include #include class Die{ public: Die(){}; Die(const Die & ) = delete; Die & operator = (const Die & ) = delete; virtual ~Die(){}; virtual int Roll() = 0; private: }; class DieDynamic: public Die { public: DieDynamic(unsigned int faces = 6, int seed = -1); virtual ~DieDynamic(); virtual int Roll(); void Record(std::string filename="Die.dat"); private: std::ofstream outFile; std::mt19937 * generator; unsigned int sides; bool recording{false}; }; class DieStatic: public Die { public: DieStatic(std::string fileName="Die.dat"); virtual int Roll(); private: std::ifstream inFile; };