问题
单项选择题
下面程序的运行结果是( )。
#include <iostream>
using namespace std;
template <class T>
class A
T x,y;
public:
A(T a,T b)x=a;y=b;
int add()return x+y;
;
void main()
A<double>a(7.8,3.4);
A<char>b(7.8,3.4);
cout<<a.add()<<","<<b.add();
A.10,10
B.11,11
C.11,10
D.以上答案都不对
答案
参考答案:C
解析: 模板函数的调用,执行语句A<double>a(7.8,3.4);后,则a.x=7.8、a.y=3.4;执行语句A<char> b(7.8,3.4);后,将对7.8和3.4转换为char类型,则b.x=7、b.y=3;函数 add()为整形,x+y将转换为整形。