在 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() 函数返回的字符串可能是平台特定的,不同的编译器可能返回不同的字符串。因此,不能依赖于这个字符串来进行代码逻辑的判断。