亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪(fǎng)問(wèn)板塊 發(fā)新帖
查看: 11188 | 回復(fù): 6
打印 上一主題 下一主題

[C++] C/C++如何判斷數(shù)據(jù)類(lèi)型(求高手解答) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2012-12-05 23:27 |只看該作者 |倒序?yàn)g覽
碰到一個(gè)題目,意思是實(shí)現(xiàn)一個(gè)Write函數(shù),是其能打印參數(shù)的值和類(lèi)型及一個(gè)自定義的標(biāo)志。
例如:
Write(10);
Write(0 .1);
struct foo
{
    int a;
};

struct foo f;
f.a = 3;

輸出為:
10,int,1000
0.1,double,1001
{3,int,1000},struct foo,2001

如何實(shí)現(xiàn)這個(gè)Write函數(shù),求解?這個(gè)問(wèn)題現(xiàn)在都沒(méi)搞明白,求大神解答(注意后面的1000,1001,2001是自己自定義的)。

論壇徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16賽季CBA聯(lián)賽之青島
日期:2016-07-05 12:36:0515-16賽季CBA聯(lián)賽之廣東
日期:2016-06-29 11:45:542015亞冠之全北現(xiàn)代
日期:2015-07-22 08:09:472015年辭舊歲徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39獅子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技術(shù)圖書(shū)徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
2 [報(bào)告]
發(fā)表于 2012-12-06 08:45 |只看該作者
沒(méi)有辦法,typeid().name()不保證是"int"/"double"等容易識(shí)別的名字,甚至都不保證其唯一(保證typeid()是唯一的,但不保證typeid().name()唯一)

因此你只能自己對(duì)每一種類(lèi)型(內(nèi)建類(lèi)型 + 自己定義的類(lèi)型)進(jìn)行重載,比如
void write( ... ) { cout << "fuck you 不認(rèn)識(shí)"; }
void write( int a ) { cout << a << ",int,1000"; }
void write( double a ) { cout << a << ",double,1001"; }
void write( const foo& a ) { cout<<'{'; write(a.a); cout<<"},struct foo,2001"; }

返回類(lèi)型改為 std:stream& 的話(huà)可以寫(xiě)得更優(yōu)美點(diǎn)

論壇徽章:
6
技術(shù)圖書(shū)徽章
日期:2013-11-13 11:11:27子鼠
日期:2014-02-20 17:54:13處女座
日期:2014-06-16 17:43:33午馬
日期:2014-08-08 09:11:17未羊
日期:2014-08-10 11:57:072015年辭舊歲徽章
日期:2015-03-03 16:54:15
3 [報(bào)告]
發(fā)表于 2012-12-06 09:38 |只看該作者

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2012-12-06 11:07 |只看該作者
傳字符串進(jìn)去,查有沒(méi)有小數(shù)點(diǎn),查有沒(méi)有非數(shù)字字符,然后給結(jié)論,不過(guò)性能就肯定不咋地了

論壇徽章:
59
2015年亞洲杯之約旦
日期:2015-01-27 21:27:392015年亞洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵節(jié)徽章
日期:2015-03-06 15:50:392015年亞洲杯之阿聯(lián)酋
日期:2015-03-19 17:39:302015年亞洲杯之中國(guó)
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03雙子座
日期:2014-12-10 21:39:16處女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
5 [報(bào)告]
發(fā)表于 2012-12-06 17:00 |只看該作者

  1. #include <stdio.h>
  2. #include <typeinfo>
  3. int main(void){
  4.         int i=5;
  5.         printf("%p",&((VVS *)0)[1]);
  6.         printf("%s",typeid(i).name());
  7.         printf("%s\n",typeid(int).name());
  8.         return 0;
  9. }
復(fù)制代碼
RTII

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2012-12-06 17:44 |只看該作者
自行重新實(shí)現(xiàn)所有的類(lèi)型。別無(wú)他法

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
7 [報(bào)告]
發(fā)表于 2012-12-06 18:45 |只看該作者
struct 那個(gè)無(wú)解,尤其是要輸出確定的 foo 這一點(diǎn)上,除非自己寫(xiě)個(gè) parser。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP