程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++中獲取數據類型typeid

C++中獲取數據類型typeid

編輯:關於C++
有時候,為了達到某種目的,我們需要獲取數據類型,這個類型無論是內置類型還是自定義類型,包括類類型; 在揭開typeid神秘面紗之前,我們先來了解一下RTTI(Run-Time Type Identification,運行時類型識別),它使程序能夠獲取由基指針或引用所指向的對象的實際派生類型,即允許“用指向基類的指針或引用來操作對象”的程序能夠獲取到“這些指針或引用所指對象”的實際派生類型。在C++中,為了支持RTTI提供了兩個操作符:dynamic_cast和typeid。

dynamic_cast允許運行時刻進行類型轉換,從而使程序能夠在一個類層次結構中安全地轉化類型,與之相對應的還有一個非安全的轉換操作符static_cast。typeid是C++的關鍵字之一,等同於sizeof這類的操作符。typeid操作符的返回結果是名為type_info的標准庫類型的對象的引用。

相關code如下:

 

#include "stdafx.h"
#include
using namespace std;

//模板類型
template
T myadd(T a, T b)
{
cout << typeid(T).name() << "  ";
return a+b;	
}

//自定義類型(C++中struct與class除了默認權限外,沒有太大區別)
struct Node{
Node(){};
int number;
Node* point;
~Node(){};
};

int _tmain(int argc, _TCHAR* argv[])
{
//對於內置類型
int test1=0;
float test2=0.2;
char test3='s';
int * pInt=NULL;//指針類型
cout <

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved