#include #include #include //for chrono::system_clock #include //for default_random_engine #include //for bind #include "base.h" //not necessary; derived.h already includes base.h #include "derived.h" using namespace std; int main() { unsigned seed = chrono::system_clock::now().time_since_epoch().count(); default_random_engine engine {seed}; uniform_int_distribution distribution {0, 1}; auto r {bind(distribution, engine)}; base *p {nullptr}; if (r() == 0) { //unpredictable 50-50 chance: could be 0 or 1 p = new base {10}; } else { p = new derived {20, 30}; } cout << "----------------------------------\n"; delete p; return EXIT_SUCCESS; }