读书人

c++函数模板解决方法

发布时间: 2012-03-29 12:53:13 作者: rapoo

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

读书人网 >C++

热点推荐