相关文章推荐
骑白马的茄子  ·  ClassNotFoundException ...·  2 年前    · 
仗义的山羊  ·  SQL ...·  2 年前    · 
腼腆的香菇  ·  SqlServer ...·  2 年前    · 

c++ 类名转字符串

在 C++ 中,可以使用 typeinfo 标准库头文件中的 type_info 类来获取一个对象的类型信息。type_info 类提供了 name() 函数,可以返回一个 C 风格的字符串,表示该类型的名称。可以利用这个字符串将类名转换为字符串。

以下是一个简单的示例程序,演示如何将类名转换为字符串:

#include <iostream>
#include <typeinfo>
class MyClass {
public:
    void foo() {}
int main() {
    MyClass obj;
    const std::type_info& typeInfo = typeid(obj);
    const char* className = typeInfo.name();
    std::cout << className << std::endl;
    return 0;

在这个示例中,我们定义了一个 MyClass 类,并创建了一个 MyClass 类型的对象 obj。然后,我们使用 typeid(obj) 来获取 obj 的类型信息,返回一个 const type_info& 类型的引用。我们可以使用这个引用的 name() 函数来获取 obj 的类名,并将其存储在一个 const char* 类型的变量 className 中。最后,我们将 className 输出到标准输出流中。

需要注意的是,name() 函数返回的字符串可能是平台特定的,不同的编译器可能返回不同的字符串。因此,不能依赖于这个字符串来进行代码逻辑的判断。

  •