首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++函数模板解决方法

2012-03-29 
c++函数模板下面是代码:C/C++ code#includeiostreamusing namespace stdtemplateclass T1,class T2T1

c++函数模板
下面是代码:

C/C++ code
#include<iostream>using namespace std;template<class T1,class T2>T1 add(T1 x,T2 y){    cout<<"("<<sizeof(T1)<<","<<sizeof(T2)<<")\t";    return x+y;}int main(){    cout<<add('A','A'-'0')<<endl;    return 0;}

运行结果:
<1,4> R
求怎么会得到R这个字符,请详解!

[解决办法]
'A'的ASC码为65
'0'的ASC码为48
'A'+'A'-'0'经过运算为65+65-48=82
ASC码82对应的字符就是'R'
[解决办法]
模板实参推断得到函数add的类型是char型,所以输出的是R而不是82

热点排行