下面程序的输出结果是( )。 #include<iostream> using namespace std; template<class T> T max(T x,T y) { return(x>= y ? x:y);

admin2009-01-15  26

问题 下面程序的输出结果是(    )。    #include<iostream>    using namespace std;    template<class T>    T max(T x,T y)    { return(x>= y ? x:y);}    template<class T>    T max(T x,T y,T z)    {        T t; t=(x>=y ? x:y);        return(t>=z ? t:z);    }    void main(){         int x = 10,y=18,maxi;         float a = 1.2,b = 3.2,c = 2,max2;         max1 = max(x,(int)c);         max2 = max(a,b,(float)y);         cout<<maxi<<endl;         cout<<max2<<endl;

选项 A、18    3.2
B、10    18
C、10    3.2
D、编译出错

答案2

解析 本道题考查函数模板以及函数模板重载的使用,max1=max(x,(int)c)语句会实例化T max(T x, T y)函数模板,返回两个int数据中的最大值;max2=max(a,b,(float)y);语句会实例化T max(T x, T y, T 2)函数模板,返回3个float数据中的最大值。
转载请注明原文地址:https://kaotiyun.com/show/A0kp777K
0

最新回复(0)