亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在C++怎么用程序判斷一個變量、函數、實例是否為某個類型?

在C++怎么用程序判斷一個變量、函數、實例是否為某個類型?

GCT1015 2019-04-03 10:07:50
在C++怎么用程序判斷一個變量、函數、實例是否為某個類型,以及怎樣得到這個類型的名字并作為字符串輸出
查看完整描述

6 回答

?
慕粉4447226

TA貢獻2條經驗 獲得超0個贊

用模板特化可以實現的。 樓主可以了解一下libboost庫,里面的模板元編程有對應的解決方案。
查看完整回答
反對 回復 2019-11-15
?
慕粉4447226

TA貢獻2條經驗 獲得超0個贊

使用元模板編程可以實現: template <typename T1,typename T2> struct IsSame{ static const bool Value=false; }; template <typename T> struct IsSame<T>{ static const bool Value=true; }; 如果兩個模板參數相同,那么IsSame會特化為第二種形式,此時Value的值為真。 元模板編程是圖靈完整的,還可以完成很多東西,例如判斷繼承關系、判斷類里面是否有某種符號、判斷類是否有純虛函數、使用c++98判斷表達式類型等等。這些功能都是編譯期實現的,沒有運算負擔。不好的就是有點難學,編譯速度會變慢。樓主可以了解一下boost庫。
查看完整回答
反對 回復 2019-11-15
?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

if(sizeof(int)==sizeof(name))printf("變量name是 int 數據類型");
簡單的數據類型可以,需要先檢查一下你需要判斷的數據類型的字節數各為多少?如果有重復的就比較麻煩啦。例如:float與long就都是4,就看你的需求啦。

查看完整回答
反對 回復 2019-04-12
?
手掌心

TA貢獻1942條經驗 獲得超3個贊

C語言沒有反射。最多用sizeof來判斷變量大小,但也不能精確的分辨類型。
要不你把所有要用到的變量名和類型放列表里遍歷?

查看完整回答
反對 回復 2019-04-12
  • 6 回答
  • 0 關注
  • 4984 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號