下面程序的运行结果是( )。 #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将转换为整形。