So we have simple interface base class:
class animal { public: animal(int age) : age_(age) { } virtual ~animal(void) { } virtual std::string get_name(v
I'd just make it so that the main() is trivial. Like
main()
int main() { int default_age = 4; return puma(default_age).run(); }
and leave it at that.