下面程序的运行结果是(  )。    #include <iostream>    using namespace std;    template <class T>    class A{        T x,y;    public:       

admin2010-06-06  37

问题 下面程序的运行结果是(  )。    #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将转换为整形。
转载请注明原文地址:https://jikaoti.com/ti/DwW0FFFM
0

最新回复(0)