📜  c++ 获取对象的类型名称 - C++ (1)

📅  最后修改于: 2023-12-03 14:39:56.075000             🧑  作者: Mango

C++ 获取对象的类型名称

在C++中,要获取对象的类型名称,可以使用type_info类并调用其name()函数。type_info类是C++标准库<typeinfo>中定义的,在编译时获取类型信息非常有用。

下面是示例代码,展示了如何获取对象的类型名称:

#include <iostream>
#include <typeinfo>

class A {};

int main() {
    A obj;
    const std::type_info& type = typeid(obj);
    
    std::cout << "Object type: " << type.name() << std::endl;
    
    return 0;
}

以上代码创建了一个名为A的类,并在main()函数中创建了一个A类的对象obj。接下来,我们使用typeid运算符和type_info类的引用来获取obj对象的类型信息。最后,使用name()函数打印出类型名称。

请注意,type_info类的name()函数返回的类型名称可能会因编译器而异。返回的名称可能是由编译器实现定义的特定字符串,而不是我们所期望的可读性强的类型名称。因此,应该谨慎依赖这个字符串。

以上示例输出结果可能为:

Object type: 1A

如上所述,返回的类型名称可能不是很有意义。如果你需要更好的类型信息,可以考虑使用其他的方法,如使用运行时多态性(即虚函数)等。

希望这能帮助到你!