typeid、typename、type_info

1. typename: 可以代替一切類型,如class,struct,long,int...

template <typename T>
class CFixT
{
	CFixT();
	~CFixT();
};

 

2. type_info: 類型信息;
3. typeid: 等同於sizeof這類的操作符,它是用於獲取類型,typeid操作符返回的結果是type_info對象的引用;

用例:

const type_info &t0 = typeid(int);
const type_info &t1 = typeid(double);
const type_info &t2 = typeid(class Subject); //需要申明、定義一個類Subject

TRACE("T0: %s", t0.name());
TRACE("T1: %s", t1.name());
TRACE("T2: %s", t2.name());

結果:

atlTraceGeneral - T0: int
atlTraceGeneral - T1: double
atlTraceGeneral - T2: class Subject

 

發佈了337 篇原創文章 · 獲贊 65 · 訪問量 30萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章