#pragma once class Object { private: const char * name = nullptr; const char * description = nullptr; public: void set_name(const char * name); const char * get_name(); virtual const char * get_displayname(); void set_description(const char * description); const char * get_description(); void set_hidden(bool hidden); bool get_hidden(); protected: Object(const char * name = "", const char * description = ""); virtual ~Object(); friend class ObjectFactory; protected: bool hidden = false; };