本文主要是介绍C++_typeid用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
typeid操作符
这里expr是任意表达式或者类型名。如果表达式的类型是类类型且至少包含有一个虚函数,则typeid操作符返回表达式的动态类型,需要在运行时计算;否则,typeid操作符返回表达式的静态类型,在编译时就可以计算。
typeid操作符的返回结果是名为type_info的标准库类型的对象的引用(在头文件typeinfo中定义)。标准并没有确切定义type_info,它的确切定义编译器相关的,但是标准却规定了其实现必需提供如下四种操作:
type_info类提供了public虚析构函数,以使用户能够用其作为基类。它的默认构造函数和拷贝构造函数及赋值操作符都定义为private,所以不能定义或复制type_info类型的对象。程序中创建type_info对象的唯一方法是使用typeid操作符(由此可见,如果把typeid看作函数的话,其应该是type_info的友元)。type_info的name成员函数返回C-style的字符串,用来表示相应的类型名,但务必注意这个返回的类型名与程序中使用的相应类型名并不一定一致(往往如此,见后面的程序),这是由实现所决定的,标准只要求实现为每个类型返回唯一的字符串。 int stop_flag;
cout << typeid(a).name() << endl; cout << typeid(4).name() << endl;
cin >> stop_flag;
}
| |
| |
| |
| |
#include <iostream>
using namespace std;
using namespace std;
int main()
{
int a = 4;
{
}
这篇关于C++_typeid用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!