21xrx.com
2025-03-27 00:17:04 Thursday
文章检索 我的文章 写文章
C++如何获取类名
2023-06-26 05:45:50 深夜i     --     --
C++ 类名 获取

C++是一种非常受欢迎的面向对象编程语言,它具有许多强大的特性和功能,其中一个是获取类名。在许多情况下,我们需要获取特定对象所属的类的名称,这可以通过使用C++的一些内置函数和库来实现。

要获取类名,我们可以使用C++的typeid运算符。该运算符可用于获取一个表达式的类型信息,包括类名。在这种情况下,我们可以将一个对象作为表达式传递给typeid运算符,然后使用其name()函数来获取该对象所属的类的名称。

例如,假设我们有一个名为obj的对象,它是类Test的一个实例。我们可以使用以下代码来获取该对象所属的类的名称:

#include <iostream>
#include <typeinfo>
class Test
 // ...
;
int main() {
 Test obj;
 std::cout << typeid(obj).name() << std::endl;
 return 0;
}

运行该程序,它会输出类名,例如:

Test

另外,我们还可以使用编译器的预定义宏__PRETTY_FUNCTION__来获取当前函数的名称,这在调试代码时非常有用。该宏返回一个字符串,其中包含函数的完整签名,包括类名。

例如,我们可以使用以下代码来获取当前函数的类名:

#include <iostream>
class Test {
public:
 void func()
  std::cout << __PRETTY_FUNCTION__ << std::endl;
 
};
int main() {
 Test obj;
 obj.func();
 return 0;
}

运行该程序,它会输出函数签名,其中包含类名,例如:

void Test::func()

总之,C++提供了几种方法来获取类名。使用typeid运算符和__PRETTY_FUNCTION__宏是其中两种常用的方法,它们可以帮助我们在编写高质量的C++代码时更方便地调试和排除错误。

  
  

评论区