Reflection
The classes Field and Method provide similar information about data fields and members.
Can even dynamically create, initialize, and load new classes into a running program.
Not part of the standard language C++, although it is possible for objects to access their type as a string value.
To a limited extent, reflection facilities can be implemented in a platform-specific manner by external libraries.