использовать typeid(class).name
// иллюстративный код, предполагающий, что все включает / пространства имен и т. д.
#include <iostream>
#include <typeinfo>
using namespace std;
struct A{};
int main(){
cout << typeid(A).name();
}
Важно помнить, что это дает определенные имена реализации.
blockquote>Насколько я знаю, нет способа получить имя объекта во время выполнения надежно, например «A» в вашем коде.
EDIT 2:
#include <typeinfo> #include <iostream> #include <map> using namespace std; struct A{ }; struct B{ }; map<const type_info*, string> m; int main(){ m[&typeid(A)] = "A"; // Registration here m[&typeid(B)] = "B"; // Registration here A a; cout << m[&typeid(a)]; }