C ++ - 有没有办法将标识符作为字符串?

时间:2015-11-15 08:48:39

标签: c++

有没有办法将类的函数或对象的标识符作为字符串获取?
像:

void SomeFunc() {}

int main()
{
    SomeClass classObject(1, 2, 3);
    std::cout << getName(classObject) << std::endl;
    // Will print "classObject"
    SomeClass name;
    std::cout << getName(name) << std::endl;
    // Will print "name"
    std::cout << getName(SomeFunc) << std::endl;
    // Will print "SomeFunc"
}

1 个答案:

答案 0 :(得分:4)

你有宏的字符串化运算符:

#define getName(a) #a

会将它获取的任何内容作为参数转换为带引号的字符串

getName(something) turns into "something"