以字符串形式获取类的名称
Get the name of a class as a string
我有一个宏:
#define DECLARE_STATE_CLASS(T)
static void create(TGE::StateListener* Parent, const std::string name)
{
T* myState = new T();
myState->parent = Parent;
Parent->manageState(name, myState);
}
我将其放置在从基类 State 派生的所有类中。我将状态名称用作字符串,因为所有状态都存储在向量中,因此我必须有一个函数来轮询向量并使用您请求的名称返回状态。我想消除用户为每个状态指定自己名称的必要性。相反,我希望名称是类的名称。我怎样才能做类似的事情
#define DECLARE_STATE_CLASS(T)
static void create(TGE::StateListener* Parent)
{
T* myState = new T();
myState->parent = Parent;
Parent->manageState(T.toString(), myState);
}
而不是我目前正在做的事情?我想最好的方法是获取myState的字体名并以某种方式将其转换为字符串。这可能吗?
使用
Parent->manageState(#T, myState);
在您的宏中。请参阅 gcc 在线文档。
您可以使用
#
从宏的参数创建字符串:
#define DECLARE_STATE_CLASS(T)
static void create(TGE::StateListener* Parent)
{
T* myState = new T();
myState->parent = Parent;
Parent->manageState( #T , myState);
}
相关文章:
- 获取字符串的长度并将其分配给数组
- 调用CreateProcess()并获取字符串的返回值
- 你如何从 Boost Spirit X3 词法解析器中获取字符串?
- 使用 ReadProcessMemory 获取字符串值的访问冲突
- 如何从输入中获取字符串向量?
- 如何获取字符串输入n次?
- property_tree获取字符串形式的数组值
- 使用 ctypes 和 wchar_t 时如何从 C++ 获取字符串到 python?
- 获取字符串大小的各种方法之间的比较
- 方法获取字符串
- 在getline()之后获取字符串
- 为什么我的拆卸C 代码使用指令指针和偏移来获取字符串文字
- 无法使用 Poco 获取字符串的路径
- 如何在qtablewidget中获取字符串的行号
- 如何获取字符串和字节进行比较
- 恒定字符阵列的获取字符串长度函数(strlen)不是恒定表达式
- 我需要创建一个函数来获取字符串中的这些数字
- 如何从地址获取字符串?
- 为什么即使尚未初始化,获取字符串[0]也是有效的?
- 获取C++字符串的位